We held a three-day Software Development Workshop at Kathmandu Living Labs last week. The workshop was facilitated by Rob Savoye who has worked on software that has been included in every Linux distribution ever created. Winner of 2011 Free Software Foundation award, he has been a long time developer of several GNU projects.
The workshop ran for two hours in the late afternoon for three days starting September 27. We had around 10 enthusiastic participants from various computer science/engineering colleges and few companies. They were excited to learn from and hear Rob’s experience with the software development industry.
The first day of the workshop was mostly around using and working with open source projects. He talked about joining an open source project, good bug reporting mechanism, and bug reporting systems. Mentioning that patches are better than bug reports, he also talked about submitting a patch. On the latter half, he highlighted a few things to consider while starting projects, letting others know about the project, getting funding for that and also about licensing of the project.
The second day was more into good software design principles and processes where he talked about aspects of good code design, writing readable and scalable code. He also talked about how rapid prototyping and working in phases improves delivery of the projects. The second day concluded with discussions around software release processes where he spoke about the alpha/beta releases and shipping it to the public.
The third day was for Development Operations where Rob talked about the testing of applications (unit testing, regression testing, and integration testing) and automating the boring part of the development process. He then went into the continuous build and test infrastructure showing a demo of Jenkins and web-based patch management system called Gerrit. Since he was also helping KLL to setup dev-ops infrastructure, we discussed how we were able to get it up and running.
Overall, the three-day workshop was a good learning experience for all the participants and us as well. It was worth hearing from the developer who has 40+ years of experience working in the field of software development and who has lived and seen the evolution of technology around it.