Saturday, May 23, 2015

Scaling Agile: Disastrous Software Factories

Quite often, we hear the buzz word ‘Software Factory’ in Scaling Agile conversations and conference sessions.  Those who promote or sell the concept of ‘Scaling Agile’ attempt to indoctrinate their audience with the belief that Scaling Agile is a definitive way to setup an Agile Software Factory. Yes, when you add ‘Agile’ to ‘Software Factory’, it becomes even more attractive.  While there are several case studies and white papers about how to go about setting up an Agile Software Factory, the challenges involved in doing so are numerous.  Because of such challenges and several other reasons, initiatives to setup such factories become disastrous.  Why do such disasters happen? This post is to bring out a list of reasons.  Here is the list.
  1. Vision and Leadership Commitment - Lack of vision and leadership commitment is a primary reason.  Well, in many projects and programs there will be vision and leadership.  However, when the vision is not set right and shared among all stakeholders including team members and when there is no inspiring leadership and leadership commitment to support and nurture the vision, results can be disastrous.
  2. Investment in Coaching - Not investing in Agile Coaching is a definite recipe for disasters.  In large programs it is necessary to invest in coaching at different levels right from teams to middle and senior management.  Obviously, this means that you need a coachable ecosystem. Learnability is important. When there is rigid mindset and inability to learn and collaborate, cultural issues fuel disasters.
  3. Focus on Cost Savings Only - Just because your ultimate goal is to set up a software factory, your focus cannot revolve around cost savings all the time.  You cannot optimize your team members just as you optimize your machines in the production line.  You cannot replace them just as you replace your machines. You cannot operate in shifts to save costs. You cannot forget about people and their emotions.  Obviously, ‘that’ factory is different from ‘this’ factory.
  4. Physical Infrastructure – Lack of infrastructure including open workspace, video conferencing, phones, meeting rooms, computers with necessary configuration, network connectivity, tools, etc., is the next reason for such disasters.
  5. Intellectual and Emotional Infrastructure - Intellectual infrastructure is about skills, competencies, expertise, special groups, knowledge forums, technical excellence and so on. Emotional infrastructure is about team bonding, trusted leadership and the likes that enhance the feeling of belonging.  When intellectual and emotional infrastructure are not adequate you will see symptoms such as  loopholes in process implementation,  poor or weak automation strategy, poor execution, lack of technical excellence, etc. leading to pool quality.
  6. Inclusion - In virtual teams or geographically distributed teams, lack of inclusion can create chaos. We know that there are several challenges in distributed agile.  When there is lack of inclusion, you see one site dictating or directing the other sites, double standards, and so on.
  7. Governance - Though this comes as seventh, it is as significant as the first reason.  Governance can make or break things.  Collaborative, inclusive and supportive governance teams can do timely course correction and deliver value to customers.  When the members of Governance team do not have a unified agenda, they may pull each other in different directions. That is disastrous.
Do you see your team stretching or burning out? Is that becoming a trend? Are your team members demotivated? Are you calling your project or program a Software Factory? Probably you do not sit through with your team members and empathize on what is going on. You are not identifying the root causes. Revisit the seven reasons mentioned in this blog and see how you can make some course correction to come out of a disastrous Software Factory and make it a success. 

No comments: