Wednesday, March 30, 2016

What is Iteration Zero in Agile Projects?

There is always a slow down time for Agile time when one project is complete and second one is to be kick-off officially. This space is very important for team. Normally Agile team utilizes such time for exploration. It is the Iteration (Sprint zero) zero time. There are different practices in different projects to drive iteration zero. Team can decide work stack and track output. Team can work on identified POCs, infrastructure work and get ready for next project. The main purpose of Iteration zero is to identify and complete all task which would be foundation to start and progress in next Sprints/Iteration of project.
 
How is the Iteration Zero Planned?
 
Rather going for a question "how", if we focus on "why" it is required, gives us good direction to know it. its preparation for the continues sprint with no hassles. Now lest find out area of hassles faced by many in this area. My Goals for IT0:
  • My team needs skilled members for new project
  • My Team needs training on new technology.
  • We need to decide on version repository and branch for document as well as code.
  • We will require computers, Servers, and required software's to use.
  • We should know about platforms I need to support, migration I need to provide (Product).
  • We should decide on automated build of application, deployment and sanity test.
  • We should have continues integration server for every day regression checks.
  • Team should have scrum rules.
  • Team should know what are tools will be used for development as well as management.
  • UX team should provide us prototype of application for UI.
  • We should be knowing scope, Epic, Stories.
  • We should have right sized stories for few sprints and Epic understanding about entire release.
There are many points to be taken care for any project to happen smoothly. These all points take us towards few distinct categories in work area:
  • Infrastructure: (Hw, Sw, Tools, Version repository, Deployment understanding..)
  • Automations ( builds, Unit testing, Regression env availability)
  • Feature list (Epic, Stories, Task, Estimations, Acceptance criteria, Prototype)
  • Project Management Task (Configuring tools, Team rule book, Execution frame work)
Now the problem faced by many teams is, how to conclude on IT0? I have laundry list with me for different work, seems no end to it. What should be my exit conditions?


Done Criteria for IT0:
  •  Stakeholder Identification complete
  •  Target customers, Region identified. High level market need established
  •  Business approval achieved.
  •  Availability of servers, software achieved.
  •  Version repository in place, Code branch created, project created in system.
  •  Project Management tool set and configured
  •  Agile supportive tool (i.e. JIRA) configured
  •  Team agreement is in place, Scrum, Agile rules discussed.
  •  Trainings for team members completed
  •  Prototype for 3 Iteration reviewed and baseline.
  •  Epic and Stories identified for minimum of 3 Iterations.
  •  Task estimations available for 1 Iteration for minimum.
  •  Identified POC completed.
  •  Technical debt or pending, deferred defects from previous release, identified
  •  High level Release size with story point is understood and release plan is in place.
  •  High level Risk Identified and action plan is available.
There would be more based on what is required to run iterations smoothly. IT0 should be time bound to keep focus and achieve goal. Iteration zero gives space for Innovation, exploration and thoughts to emerge. Iteration zero should be planned in systematic way to get maximum benefit out of it.
 
 
 
 
 




 
 
 
 
 

 

 
 
 
 
 












Tuesday, March 29, 2016

What is Agile?

Its really confusing when I relate myself with Agile. Responsive, Swift, Active are other words given to represent  Agile.


 I started my working in early 90's. Working along with shop floor of different industries, unless quick response is not built up in thought process, delay in work is certain. Days when I was working in agricultural farms, every day a farmer has to know the weather information in advance. Farmer has to act accordingly to see, fruits, vegetables and crops are well aligned to change. By nature plants align themselves but do we? Its really trouble some question to me. I had to act according to weather report to get maximum out of it. Report changes every day and when you look back, it has a pattern of changes. So I had to plan my activities every day or in advance of 2, 3 days. This helped me to control proper growth of plants and output.


I had systematic plans for next 2 years to increase farms, production. some of wish-list about goals and family desire. I felt, I don't have control on situation. I was focusing on my written plan but situation was changing. There was need of urgent finance and my plans were drawn for longer term and to give me yield in longer cycle. I had to decide, if I can continue with my plans or need to take decision based on situation.


I started doing a job to serve my financial needs and floated myself with situation. I landed to shop floor of metal industry away from farming. Shop floor taught me active planning every day. Situation changes in two time dimensions. short term and long term. started doing planning for workflow keeping in mind of end goal as product. At the same time small mile stones are getting planned. This has helped me a lot to change me from long term planning to split work in small milestones and adding those points for higher goals.


Responsive with facing change, Responsive with time, Responsive to feedback, inputs became part of every day planning and that is the time, I came to know word Agile. There was a time period where to get good direction and job, I had to take steps to go back in education, again start journey in other fields. change became part of life. I started feeling life is nothing but change every day, choice is ours for better or worst. Now to accept the change in positive direction I found we need tools to tame the change, direction and time we have. Normally human being do not have choice when situation changes and only instrument in hand is respond quickly, Respond actively and respond to see you get feedback time to time. Feedback becomes electronic circuit "Positive or Negative" feedback like jet engines of satellite, used to control its direction by firing multiple times.


from starting with farming to metal industry to software's, I took actions with time actively to face challenges and landed into space to handle waterfall projects.


Was practicing Agile in life to balance my needs but in professional world it was waterfall. Requirement, Analysis, Design, build and test....then only we know what is feedback from customer. It was longer cycles and pining constantly to give extra efforts in managing change, making it relevant when it goes to customer. Looking at benefit coming out form feedback we decided to have short cycles of 3 months for a release of software.


One side we were experiencing every day in life that change is necessary and will come always but being responsive, active and swift, we can take actions to control feedback, change in positive side. Second side in software development we were struggling to manage change and time duration of first feedback.


All points merged towards taking the benefit of word Agile which was in good shape in many companies, for us to adopt and learn the way. I am practicing Agile in my projects now. Lot to be done but will keep posting every side of it. Keep watching this space.