No Bullshit Software Development
Recently, I read Erik Meijer's rant wherein he compares the agile movement to a cancer that needs to be eliminated with immediate effect. He comes down especially hard on two of the "best practices" propounded by the agile community - stand up meetings and test driven development. Well, he isn't the only one who has expressed disillusionment with agile and it's practices - the same article has a quote from Dave Thomas, one of the signatories of the Agile Manifesto, which is harsh to the point of being cynical.
Okay, here is the scenario in our software development world:
a. An idea is proposed by a group of individuals- say the Next New,Cures Alzheimer's Kind of Idea ( NENCAKI).
b. It is adopted by an early bunch of enthusiasts who wax eloquent about this new idea and passionately evangelize NENCAKI as a counter-culture - to the point that those who question the questionable claims are branded as members of the "evil empire" .
c. A large number of people embrace this counter-culture - fear of being left out being the main motivating force.
d. Consulting companies mushroom, seminars on 'best practices' of NENCAKI turn up in your inbox, social media communications, certifications are offered ( at extortionist prices), highly qualified (not having written a single line of code in the last 10 years being the highest qualification) NENCAKI coaches emerge, global/national/regional NENCAKI societies appear and so on.
e,. And then, corporates (somehow the name of Goldman Sachs always springs out) start adopting NENCAKI, software outsourcing companies have NENCAKI practices, each claiming to be the "thought' leader in the brave new world of NENCAKI.
f. Finally, someone (say Erik Meijer) comes along an says "hey! this emperor has no clothes! Let us dump it.
How often do you think this happens? It seems to happen with alarming frequency -- so far once in every 7-10 years. I suspect the frequency will increase- with "internet time" and all.
You can replace the term NENCAKI with any of the following and you will understand what I am saying:
Objected Oriented programming
Total Quality Management
Functional programming-- now in phase (d) above.
And possibly many more I haven't come across. Of all of them had "best practices", certifications, seminars, societies, coaches and all the related goodies.
Well here is an idea, NOBS (No Bullshit Software). Read carefully now, its is very profound:
-Learn how to write good code - believe me, it is simpler than you may think!
-Learn your technology stack in-depth.
-Learn English - or any other natural language that your customers know.
-Learn to communicate using the your chosen natural language - and that means:
(a) ask what the customer wants (if she doesn't know what she wants, then tell her you can't write the software)
(b) spend some time explaining the limitations of computers (c) explain why something takes so much time to write and test and (d) what are the technical unknowns, limitations of the chosen platform
-Find people who do or are willing do all of the above.
-Finally, write the damned code!
Trust me, all the successful software projects (about 10% of all projects attempted) have followed the techniques described above.
Let us start with evangelizing this all new revolutionary software development methodology. Seriously, No Bullshit!ing here...
(Adapted from my earlier post on linkedIn).