Developer 0.0
The successful warrior is the average man, with laser-like focus.
–Bruce Lee
Why?
Last December I did a presentation on Netponto, a Portuguese .Net user group. It was a very atypical presentation for me, since it had zero technical content.
The presentation served several purposes (and different objectives). First it was meant to fulfill a promise I had made to Caio Proiete that I would do another presentation at a Netponto meeting. That was the first part of the promise, the second one, was that I would do an offensive presentation which would lead to no further invitations for talks (both a promise and an objective ). Thirdly it was a presentation that I wanted to do for a long time (with perhaps opposing motivations).
The talk was simply named Developer 0.0, it starts with the basic premise that we (as developers or an industry) are viewed as fungible assets.
Justly or not, it is a perception that we deserve because it is something we have positioned ourselves into, with our practices and attitudes.
Perhaps we do have a tendency to place ourselves into rat holes, that is certainly one of the reasons why we are viewed the way we are, we tend to fixate on the problem solved and in the end we lose sight of what the problem is and why we are solving it. But it’s not the only reason.
We tend to see software development as coding practices, patterns and programming languages syntax. We close ourselves into our on domain when we should me more multi disciplinary, there are a lot of problems that have been solved hundred years ago by other disciplines, we just don’t look at them or dismiss them as not important.
In this presentation, I try to argue that developers can only change this, if they change their posture by following some rules/principles. I say developers, but I think this could be adapted to almost any other profession, since most of them are not specific to our industry (but seems very prevalent).
Common sense is the most fairly distributed thing in the world, for each one thinks he is so well-endowed with it that even those who are hardest to satisfy in all other matters are not in the habit of desiring more of it than they already have.
— René Descartes
Some people would say, these are just common sense. Perhaps they are, but common sense seems to be been abused to a point, that is almost useless to use as an arguing point.
I opted for an offensive and provocative attitude by trying to show that we normally have a posture that doesn’t bring us any benefits (on the contrary) and try to question why such practices are widespread, specially since I wouldn’t tolerate them if they were imposed on ourselves by other people.
As to dancing, my dear, I never dance, unless I am allowed to do it in my own peculiar way. There is no use trying to describe it: it has to be seen to be believed.
–Lewis Carroll
The meeting organizers didn’t had a clue about the content of the presentation. I only shared the title and no abstract (and yet I had an audience. Probably because they didn’t knew what they were coming for which was the point of not having an abstract).
In the end the presentation generated much more debate than I had anticipated and most people said they weren’t insulted and were expecting me to be much harsher. (to my dismay and disappointment )
The Content
The content the combination of three things: wishing, my failures and for (my) future reference.
Life itself is your teacher, and you are in a state of constant learning.
–Bruce Lee
By wishing, I mostly meant these are things I wished I was taught a little earlier (instead of learning it the hard way), I think these should be taught straight out of college (heck I think this is High School material) in facts it’s the theme of the whole presentations, these are the things (not all since I have material for at least one more presentation perhaps two) that all developers should master before they are allowed to even touch a keyboard.
They are also a reminder of my own failures, failure to apply some of these principles (due to ignorance), failure to apply them due to inability and/or lack of mere tactical reasons when strategically it made totally sense (let’s call it management debt).
In Jeet Kune Do, it’s not how much you have learned, but how much you have absorbed from what you have learned. It is not how much fixed knowledge you can accumulate, but what you can apply livingly that counts. ‘Being’ is more valued than doing
— Bruce Lee
And specially to serve me as future reference for the road ahead. To keep me on the path and avoid the pitfalls of the past.
These views may represent (or not) best practices, economical,political ideology, human behavior observation, societal organization or just a cynical view of the world (take your pick), but the fact as humans tend to organize as a society at the end of the day, it will all come to Thomas Mann phrase “everything is politics”.
Regrets
If I had to present it again,I would remove just one slide (I regretted having that slide the moment I’ve seen it on the projector ) slide 41 with the title “A evitar” (~minute 54) . Which contains the traits we should avoid while hiring someone.
It has too much personal opinion (although it is clearly stated as so) in hindsight it seems too personal and even a little disrespectful.
Just have only kept myself to (fact based) opinions (still opinions, but more defensible).
In a nutshell
Use only that which works, and take it from any place you can find it.
— Bruce Lee
If I had to summarize the presentation in a few bullets, I guess this is how I would do it.
- What is the purpose of software
- The reality of software development
- Incapacity to deliver on schedule
- Incapacity to deliver on budget
- Incapacity to deliver what the business needs
- Why do developers exist?
- Being a commodity VS delivering value
- The costs of context switching
- Opportunity costs
- Don’t follow the trends just be
cause…. - The theory of comparative advantage
- Understanding context
- Accountability
Watch it
If you have one hour and thirty seven minutes to spare the video of the presentation is now available (the presentation is about one hour. The rest is just discussion with the audience).
The presentations is in Portuguese. The dim lighting, the quality of the video and the sound are not my responsibility. The rest of the crap are my responsibility (the questionable content, the bad jokes and my humpty dumpty stage presence (really need to work on that)).
The video is now public
The presentation can be seen here (full fidelity)
or on Slideshare which tends to corrupt the animations