This talk happened at the University of Tarragona (URV) with a lot of students as attendees. It encourages to strive for a learning culture and being better professionals in software development.
1. Silent talk* about
SOFTWARE AS A CRAFT
This talk happened at the University of Tarragona (URV)
on 17th February 2018
* It includes extra slides as intertitles in the same way as a silent film
13. It began when I was 12 years old and my mother,
programmer in COBOL on punch cards in 70s,
encouraged me to attend a course in the back office of
a printers shop. It was called ‘Soft-Hard academy’ ;)
14.
15. 6 years later,
I had my first computer with a Linux distribution.
My first computer!!!
Those were other times ...
19. … the (pure) WaterFall method is arrogant in its confidence:
... requirements phase, we will identify all relevant requirements, and
correctly
... analysis and design phases, we will interpret the requirements
correctly, and produce an implementable architecture and design which
will not need changes.
... coding phase, we will interpret the design correctly and make no
significant mistakes
... testing phase, we will test correctly, and (sufficiently) exhaustively
wiki.c2.com
Ward Cunningham
20. Not only a lack of humility,
but also developers are not expected to think.
Experienced developers are promoted to think
and they lose their expertise in programming.
25. Manifesto for Software Craftsmanship
Raising the bar.
As aspiring Software Craftspeople we are raising the bar
of professional software development by practicing it
and helping others learn the craft.
35. In 1998, Carlos Sainz had a mechanical problem
a few meters from the finish. His co-driver shouted him:
¡Trata de arrancarlo Carlos! ¡Trata de arrancarlo!
(Try to start it, Carlos! Try to start it!)
Until then, I haven’t heard about Luis Moya, his co-driver.
37. A co-driver is very important for a rally driver,
because it’s difficult to become aware of everything
when you are handling controls.
The same thing happens to us with a computer.
So it’s very useful to have a navigator when
programming.
40. Pair programming
● Respect
● ‘Let’s try your idea first’
● DRIVER: Thinking out loud
● NAVIGATOR: 10-second rule
● Don’t worry if it feels awkward at first
44. Kent Beck says that he ‘rediscovered’ TDD
in an ancient book about programming:
‘It said you take the input tape, manually type in
the output tape you expect, then program until the
actual output tape matches the expected output.’
62. And some people tend to think that
they can make it run and right at the same time.
Be humble, wait for listening to the code after green
and then refactor. It will surprise you.
66. Does it make sense only
to focus on a high coverage?
Does it guarantee a good safety net?
67.
68. Let’s imagine balls are mutations of production
code (replacing + by -, reversing conditions, …)
and tests discover/kill those mutations when failing
69.
70. There are tools to mutate source code and
to execute tests in order to detect ‘not-covered’
code
84. I find it more interesting
to read books about “our history”
(those who don’t know history are doomed to repeat it)
and fundamentals,
rather than about specific languages or frameworks
87. … but also sharing what you learn.
When you explain what you read,
that knowledge changes for you.
It helps you to comprehend it better.
And you can find small treasures in the first chapters...
88. I love...
● About the author
● Preface
● Foreword
● Acknowledgements