Direction through Iterative Planning
The first thing you need to do when implementing Agile is create a Backlog. Then, as the Product Owner, create a road map of where you think things are going. It’s important to remember that this is a snapshot in time, so don’t over-plan. The key message is that everything is being done in the open. Plan in enough detail to deliver the next increment of value and estimate the rest of the project in larger chunks.
Setting direction is one of the most important things you’ll do when building a product and company. A clear path aligns everyone to work toward the same goals. Invest in planning and whether specific areas of the app should be prioritized higher than others. With direction, it’s easier to work together, know what to focus on, and make meaningful progress. Technical roadmaps are a critical tool for shaping this direction. The culminating roadmap sets a path of execution for the near future, in front of you and out of reach.
The whole team attends the IPM (Iteration Planning Meeting). The entire team includes the stakeholders, the programmers, the testers, and the project manager. The goal of each iteration is to produce data by getting stories done. The stakeholders will have read the estimated stories and sorted them in the order of business value. An iteration should contain about the same number of stories as there are developers on the team. The team should focus on stories rather than tasks within stories. Stories are chosen by and belong to individual programmers. Managers and leads will be tempted to assign stories to programmers. This should be avoided. Let the programmers negotiate amongst themselves to promote collaboration is far better. After all, agile teams should be self-organizing teams.
Before making any new decision towards passing a change to production, we must ask, is it working? Then can we make it more readable, and how fast can I make it? “Make it work.” You are out of business if it doesn’t work. “Make it right.” Refactor the code so that you and others can understand and evolve it as needs change or are better understood. “Make it fast.” Refactor the code for “needed” performance. Our highest priority is to please the customer through the early and continuous delivery of valuable software. Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
Deliver working software, from a couple of weeks to a couple of months, with a preference for a shorter timescale. Business people and developers must work together daily throughout the project. Build projects around motivated individuals. Working software is the primary measure of progress. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace. Continuous attention to technical excellence and good design enhances agility.
Simplicity — the art of maximizing the work not done — is essential. The best architectures, requirements, and designs emerge from self-organizing teams. The team reflects on becoming more effective, then tunes and adjusts its behavior.