Methodologies in Software and Medicine

When a person gets into an emergency room in a hospital, he or she gets treated by regular doctors, not geniuses. I believe, this is the goal of the modern medical science – to makes sure that lots of doctors are available to provide medical help to patients. I’d assume that ER personnel has some well defined and strict procedures as to what to do when a person shows up with specific symptoms.

That’s why, some patients may be wondering, “Why they put me through all these tests and kept me there for 5 hours instead of just giving me a pill to take care of my stomachache?” The answer is simple – there is a written and approved methodology that lists all the steps that must be taken. If something bad happens with the patient after applying all these steps, the medical personal is covered – they can’t get sued becase they were following the methodology.

Any methodology is a set of instructions.

Yesterday, I posted the following tweet, “All programming methodologies have the same goal: allow mediocre developers deliver something. Should we rather hire only good programmers?”  I got some angry replies to this obnoxious statement.  Should a hospital rather hire only medical geniuses to treat patients? Yes, if there would be enough geniuses and  the hospital had enough money to hire them.

Coming back to the enterprise software… The number of projects that need to be developed is large, not all of them should be even started and are doomed to fail anyway, but they have financing. Not all of the patients in the ER should even be there, but half of them are there because insurance pays for these visits. Can someone change this situation? I doubt it. Obamacare will result in the substantial increase of the numbers of mediocre doctors, while the gifted one will  try to find some ways to maintain their standards of livings and will become stock brockers, real estate agents, open the restaurants, etc. They will master new methodologies.

The software developers sticking to certain methodologies (TDD, SCRUM, popular frameworks, design patterns, ORM) have a safe and predictable career. How can you blame Joe if he attended every Friday’s standup meeting, wrote hundreds of unit tests, and all of his communications with the database were done via a de facto standard Hibernate ORM framework? Joe did everything as prescribed. If he got fired, there is an IT  shop across the street that need a person with a certificate of Srum Master.

Talking agile… people over processes… [Screaming…]  Then why people have to stand on their feet for half an hour? To me it looks like processes over people. Let’s do kanban. At least people will spend some time moving these colorful sticky notes on those dirty white boards. Why implementing  agile methodologies? To allow mediocre managers run projects.

Disclaimer. One of our projects pretends to use agile principles – it allocates work to sprints. We’ll implement this feature in sprint 87. Yeah, right. I’ll believe it when I see it.

I’m lucky to work for a small consulting firm, where over the years we were able to  build a team of talented programmers who know how to write code. They write code that works. It may not be easily readable by every programmer in the industry. I know that some luminaries believe that the code should be written for other people, and not computers. I have my reservations. The code should be efficient. I’m not saying that we need to generate a spagetti code and bring back the Go To operator, but the code should work well.

Recently I’ve learned, that in one large outsourcing consultancy to become a Software Engineer of Level 1 you’d have to pass a test that requires  to write a certain amount of code in a given time. What is that? Why not just giving extra bonuses for software developers who can speed type? In Cobol times, one of the first questions head hunters were asking was “How many lines of code have you written?” But I can’t recall a question “How many lines of code can you write in one hour?”

Again, not everyone can have a luxury to build a team of highly skilled software developers.  I’m grateful that I’m one of these lucky people.  Sorry for writing this blog.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s