Shortly before the yearend holidays, couple of us from product development companies got together to discuss how software development process philosophy and methodology is changing. We had representation from global embedded companies, healthcare products, internet domain, automotive, semiconductor – you name it. What was interesting was that irrespective of the type of software product being created, some common themes emerged in terms of practices that seem to make sense:
- Continuous integration: integrate early, integrate often seemed to be high on priority list for most.
- Test Automation was considered equally important agile practice
- Collocating cross-functional teams was found critical for end-to-end product development
- Being nimble to requirements was critical not just for customer-facing products but even in enterprise world
- Some (many ?) engineers are not used to reporting daily – they think it is an unnecessary intrusion into their work, and perhaps even a productivity impediment! Making them think otherwise is an important culture change
- Techies don’t want to become scrummaster – they would rather work knee-deep in coding! Some companies tried to hire ‘scrummasters’ – career project managers without specific domain skills but that was not very successful. The challenge is to find right set of people to play the role of scrummaster.
- Daily stand up seems to be a great way to make sure teams stay on the same page. I recounted my own experiences – way back in ’98 at Philips, we used to have daily stand-ups and it was highly effective.
- Simulating interface components was a high need for companies in hardware-software co-creation cycle. This especially became critical as the hardware was generally never available when doing software
- Can’t work from home in a truly agile world – have to co-locate teams. This seems to be a rather side-effect of using agile for teams – since teams have work closely and for things like daily stand-ups, everyone should (preferably) be in the same room. However, given the realities of modern day life, working from home is not only inevitable few days a month, but might actually be a productivity booster (ask those of us from Bangalore!). So, having a rigid agile discipline seems to be at crossroads to people’s ability to balance their work-life.
- Blank sprint after 3-4 sprints is a generally used practice. People felt back-to-back sprints would fatigue the teams, and make the work monotonous, and hence a blank sprint. A blank sprint was simply another timebox with housekeeping activities, vacations, etc.
- There seems to be an growing chorus for having internal agile coaches – however, no one in the group was using them. There is a general disdain for external coaches who might only give bookish prescriptions – after all, you need someone within the system to own the action items and not someone who simply makes powerpoint of the status. There was a great discussion that such agile coaches can’t simple be a single-axis professionals whether process guru, people manager, or techie. Rather, they need to be a bit of everything and then some more – project manager + process guru + people coach + techie + communication expert + …
- What is the role of manager in an agile world? This question has never been addressed well by agile community. How do people grow in their careers in an agile world. In the traditional system, whether good or bad, there is a hierarchy to aspire or grow into, but how do you acquire different skills that prepare you for taking on higher-level responsibilities in the career? If scrummaster is the closest role for a manager, then what next? Scrummaster or scrummasters? There was no clear direction or best practices that have stood the test of time.
- Pretty much no one believed that bookish or a biblical approach to Agile is the right thing – everyone seems to tailor agile as per the unique combination of business needs, nature of products and business and culture, etc.
This was definitely an interesting session that gave an opportunity take stock of some of the things that are working or not working. We also discussed the fact that Agile is really addressing a subset of the entire business problem – to address the entire problem, we need to embrace systems thinking and lean thinking.
What are you thinking in 2011?