Wednesday, April 6, 2016

Regular Scrum does not allow good time for Design, Innovations??

Once Iteration zero is complete, I don't get time to think. I have story backlog for sprint and product as well, so where is time for me to rethink? how can you expect Innovations? its voice I hear frequently from many of discussion groups. Lets think how we develop a software? What Agile says to follow a software development life cycle?


Lets look how Iteration Zero related to Major POCs and Detailing:
It is recommended to complete all POCs for a project in the Iteration zero timeline. Team should work to explore new technologies, frameworks, database designs, design patterns discussions to happen in early phase in Iteration zero. Due to unpredicted exploration work, time duration for iteration zero may be of 2,3 or 4 weeks. This allows team to explore and work on design for next 2,3 Iteration requirements. Iteration zero starts with a understanding of business need and guidance so a clear direction for team on business requirement is available. Now team had to focus detailing out requirements and work on to choose right design for the available scope.  The purpose is not to do the design of entire release which will lead to again a wait time on completion of requirement analysis of entire release/project and it would be more to a water fall way.  The main aim is to start work with focused direction on customer requirement clear as much as available. While detailing there could be different categories of Stories or Epic would be:


1. MVP Stories and Epic.
2. Good to have Epic, Stories.
3. Customer Delight Epic, Stories.


Normally I found teams prefer to get prototype for application in Iteration zero .(Static pages of UI along with business flows). This gives a good control on planning sprints and release. Team may be completing prototype for 3 Iterations at a time, so that proper detailing of requirement, design can happen for first few Iterations and so on. This allows team to complete identified frameworks, POCs to close quickly in first lot and start Iteration once all infrastructure setup is available(As I elaborated in my earlier blog).


As In Agile teams it is expected that requirement and design will evolve. Every Iteration each story will have design as one of the task along with other identified once. When developer designs and code for any story, the process of development goes in constant validation by building up automated testing suite as well. This gives good control on quality and revalidating the design, acceptance thought through.


Innovation and design should be discussed properly in Iteration Zero for available requirement. As and when more requirement gets added or explored, it is addition of requirement as extension to earlier one and not at all new area to venture. If team finds that original design is not validate and need to change again, its time to call off regular Iteration go for short design Iteration of 1 or 2 week.


So it is very clear, we have lot of space to make design and Innovation if team wants to explore but once it is frozen, its time to deliver.

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.