On 25th July, we attended our first ever Software Design Boot Camp at Directi. For the uninitiated, the term “boot camp” refers to the initial indoctrination and instruction given to new military personnel in the United States Marine Corps. In this case, our objectives were to achieve a uniform level of understanding of basic software design principles among all the software developers working across different products, technologies and departments, and to share a common vocabulary as far as software design is concerned.

The boot camp was scheduled to be a one day event, attended by close to seventy software developers, and we decided to organize it at a nearby conference hall. The choice of an external venue was due to various reasons, not the least important of which was that typically when such a marathon session was conducted in house, we developers would end up invariably distracted by our day to day activities and would be unable to fully concentrate.

The agenda was an interesting one, starting off with a key note by Robert Martin on Object Orientation and Code Rot, and a Guest Demo by Joshua Kerievsky on Code Smells. While some of us might have thought that Robert and Joshua were coming down in person for the introductory sessions, we learned that we would be watching videos of their presentations instead! Though definitely not as exciting as being in a face to face discussion with them, the video presentations were watched with keen enthusiasm and interest.

This was followed by a session on Common Code Smells with several illustrative examples by our very own Naresh Jain, and then we had a series of short sessions briefly explaining each of the S.O.L.I.D principles of Object Oriented Design presented by the geek brotherhood at Directi (Sandeep, Jigar, Ajay and Carl). Most of us agreed with Jigar’s views that you can’t always have it all as far as design principles are concerned and many a time we have to make intelligent trade offs to achieve what we want. After a short lunch break, we continued with an interactive overview of Test Driven Development, again by Naresh. This session was a live demonstration of TDD with tests being written first to drive the development of a simple stack class from scratch. This session evoked a great deal of enthusiasm and participation from many of us in the audience, and the ideas brought forth were vigorously discussed and debated.

We then had a short retrospective on the boot camp, and the unanimous conclusion was that despite the lack of time, this event was very well organized, and all of us should participate and contribute to an event like this at least once a month. Looking forward to the next one!