Challenging Software Engineering

Jeff Attwood at Coding Horror writes about the similarities between Rock Climbing and the Software Development based on Alistair Cockburn’s game metaphor.

It is true in many ways that the cooperative team effort in a game can be matched with software development. I would rather choose Scuba Diving for this metaphor.

Every dive starts with planning. Based on the experience of the team, divers pair up in teams of two. Depth, what to do down there, time to spent and other activities are talked in advance and agreed (requirements analysis, work breakdown structure). You know exactly what to do in case of emergencies. The entire dive is planned and charted. There is a dive master (project leader) who is responsible of planning every move. The communication method under water has got strict rules and everyone knows what to do incase you run out of air or when you are in danger some sort. Your equipments and tools are your life support under water and all connections are checked by your buddy or the dive master.

After the dive you sit down and record the dive. Temperature, maximum depth, objective of the dive, place, weather condition, your buddy’s name and everything related to that particular dive is written and recorded in your log book.

Once you get more experience and licensed you can go deeper dives, wreck dives, rescue dives. It becomes fun because you know exactly what is going to happen and learn. There may be unexpected things happen but you can always incorporate those in your plan if they are not disturbing the main plan badly. Or you terminate the dive al together just to be on the safe side.

Well, software projects do not threat the life of project stakeholders but I think loosing money, time, dignity, customers etc. is even worse in the software sector. The lack of planning, management skills, experienced team members and passion are the worst enemies of a software project.

Whenever a project fails somewhere we usually never hear about it but there may be lessons to learn from that. There are more lessons to learn from the successfull projects though.

 Eden

At the end of each day, I measure my day and see if I learned a new thing or two. I record them if I think they are usable later. I blog about it, if I think community can learn something from it. This is my passion and never ending learning experience. I recommend the same to all young developers out there.

 

 

Posted in Bilişim, English.