Sunday, February 15, 2015

Making Agile successful in not so "Agile supportive" environment

Environment is must for Agile or any other framework to succeed. But there can be many deterrents which may hinder successful adoption of Agile. To start with 

  • Not having experienced team because of some of or other organizational constraints. 
  • Leadership not committed to Agile, Just want team to work in Agile way.
  •  Not having an awesome test infrastructure.

Not having experienced team because of some  or other organizational constraints   ( Team having high no of freshers and junior folks )  

Everything at the end of day is business and most of the leadership gets influenced by the account books. Either they don’t want to invest or constrained by budget to start Agile journey with junior team. Agile is framework which tries to simulate software engineering to a highly efficient machinery and it follows the same principles, GIGO ( garbage in garbage out) if you don’t invest in team and don’t hire the right folks you won’t be seeing the desired output.

However that doesn’t mean that a junior team cannot succeed, they may struggle for initial couple of months or may be 1-2 years and then can start performing awesomely. Most of the changes Agile suggest requires lot of unlearning and then learning new things eg shifting from most of manual testing to automated testing,learning to produce and deliver small every sprint etc  which may come as a silver lining with junior team as they don't have to unlearn anything.

Here are some of the things that you can try  to lead a team with junior folks successful.

  • Train them rigorously and have dedicated mentors available every moment and share knowledge between members every week. A mentor should not be mentoring more that 3 folks at a time and his assignments should be decreased by  at least 50% as he will be investing more than 50% time in mentoring folks.
  • Create a safety net and encourage then to share their mistakes every day and try to solve them instead of ignoring or asking them to work on it without providing suitable support.  
  • Leadership spending at least ( 5-8 hours weekly ) with them to boost motivation and give them a feeling  somebody is there don’t worry.  New folks should be giving demos,trainings etc every week which will help leadership in accessing how they are progressing and it helps in grooming the new folks.
  • Listen to grapevines every moment – people have tendency to hide things encourage them to share the failure and try to turn it into success.
  • Have patience with the team , Dont expect them to deliver in a day.  Patience doesn't mean below standard work is acceptable, Be ready to change the entire team if you don't see positive movement every week.

2. Leadership not committed to Agile, Just want team to work in Agile way.

Leadership is the biggest bottleneck in adopting agile. Strong commitment is required from Leadership to make Agile successful. Movement to Agile means at least two fold work for leadership, Stretching much more than the team,  Be available 24*7 to the team etc.

Some signs that leadership not committed in Agile
a)      Leadership ( managers, scrum master, architects, product owner, sponsor) not aware of Agile are not investing in trainings ,ramp up. They are just asking everyday about team status not aware what is happening . They need to be aware of daily progress and that should not come from status meetings.
b)      Leadership not taking care of their roles and responsibility just want some delivery very sprint.
  • Product owner is not part of standups, not working with team , not aware of what problems team is facing on day to day basis. PO should be working with team and should be aware where team is stuck etc. He should be team face during leadership and should be driving the release plan etc.
  • Scrum master just playing a passive role in standups , planning etc. He /She is not able to understand what is team doing where are they really stuck, do they need help. People are generally shy to say I need help SM should be able to gauge it on a day to day basis and should get the appropriate help asap
  • Managers are still the typical waterfall manager that just want the status and not engaging the team in understanding the problems and solving the same.
  • Sponsor/PO are not changing the priorities/scope as the team is progressing. They just want team to deliver what they think of. Instead of throwing the EPIC to team that I want XYZ epic delivered by XX date

It should be more of gauging the team velocity and prioritizing the features as per that.
Agile can only succeed when leadership is committed to it and is ready to take atleast twice the work load from team. Leadership is generally the biggest impediment in moving to agile as they have to be lot more patient , solve lot more problems every day and are the once
The only way to get some good coaching for the leadership and is possible  hire a full time coach for initial months. Leadership is the biggest bottleneck for enabling agile and a very strong leader is required to step in to move the leadership towards the agile path

3. Not having an awesome/any automated test infrastructure.

Agile means delivery sprint ( max 2-3 weeks, people are successfully executing 1 week sprint also) and with  manual testing you cannot do continuous development and delivery.

  •  Start Small , Monitor everything : Automate UT cases , If there is lot of legacy for every new code written start writing automated cases. It is hard and team will try to push back on the account of time etc , somebody should be there to believe in it and continue to motivate team to write UT cases for every line of code change be it a defect fix or a feature development.
           Have them running on a daily basis and any failure need to be fixed on highest priority.
  • Build End to End automated usecases running after every build : For a legacy product it will be hard to write UT cases and coverage will be pretty low yielding low value. In parallel start building some end to end use cases. Identify your top usecases and start automating them.  They should be running on a daily basis
Soon you will start seeing some value out of it when due to some bad fix regressions breaks etc and it will also help you cut the regression time at the end of release.

No comments:

Post a Comment