This is the second in the series of posts that we will be doing for workshops taking place at Agile India 2013. The next workshop we are focusing on is “Honing Technical Practices To Realize Sustainable Agility” by Venkat Subramaniam.
Venkat is founder of Agile Developer, Inc. and has trained and mentored thousands of software developers in the US, Canada, Europe, and Asia. He is also an award-winning author and has written several books including: ‘NET Gotchas’ and ‘Practices of an Agile Developer’ (winner of 2007 Jolt Productivity Award). He is a regular invited speaker at several international conferences.
We feel quite privileged to have him present several talks and also this workshop at Agile India 2013. He was one of the favorite speakers at Agile India 2012 based on the feedback we received. Also his video from Agile Inida 2012, was the most viewed video online.
While Venkat was traveling around the world attending conferences, we stole some of his time and asked him a few questions about his workshop.
What’s the take away for the attendees from the workshop?Learning practical technical practices to sustain and succeed with agile development. Agile development is really feedback driving development. Many organization and teams are really excited and focused on succeeding with agile development. They have aggressively adopted various management practices. While this is good and essential, it is not sufficient. In addition to receiving feedback, the team has to respond quickly and effectively to the feedback received. In addition to right intentions, the team needs to have the technical ability to respond to change. It is hard to be agile if our code sucks. Having high quality code and quickly running automated tests, can help respond to those feedback and keep the response cycle running smooth. Management practices (and the management support) are like the left wheels of a car. Technical practices (and the support from programmers and testers) are like the right wheels of a car. For a stable sustainable progress these wheels have to be aligned. Programmers serious about improving their technical skills to support agile development on their projects or for the companies will benefit from this workshop. They will learn specific skills that have impact on their ability to respond to change and support their teams. They will learn how to create lightweight, evolutionary design, how to recognize and evaluate such design, to refactor code, write useful unit tests, create effective mocks, and how to practically create continuous integration feedback loops. I invite programmers to bring their computers, roll up their sleeves, pair up with fellow practitioners, get their hands dirty with code and design, and hone their technical skills through this workshop. There is very little theory in this workshop, its all about learning by doing. What are some of the main topics covered in the workshop?
- Agile development and sustainability
- Cost of technical practices
- Driving design using automated tests
- Evolutionary architecture
- How to make good use of mocks to aid unit testing?
- How and when to refactor code?
- Practicals of continuous integration
Are there specific tools or languages that you plan to focus on?There is strong influence of programming languages and automated tools in this workshop. However, programmers have the flexibility to use the language they’re most comfortable with or relevant to their work. I can comfortably program in about 8 languages, which includes the main stream languages, so should be able to assist the programmers with specific questions and also compare and contrast approaches based on language influences. Who’s the workshop intended for? Programmers passionate and genuinely interested in improving their technical skills to support their organization’s agile development efforts.
Links to some talks/presentations by Venkat: