In the traditional plan-driven methods for the information systems. The development phases are executing sequentially:
- Requirement writing
Collecting information from up-front is the key to traditional project management strategies.
In contradiction to the traditional plan-driven approach, Agile has an adaptive value-driven approach to software development. It favors minimum up the front design without heavy documentation using short incremental iteration cycles.
The result of each iteration is a piece of working software product that is been deliver continuously throughout the project. At the end of each iteration, the implemented increment of the software should be complete and potentially shippable.
Agile Framework and Execution
Agile Software development methods are present in order to improve the development teams. Response to fast-changing business requirements that’s why Agile encourages collaboration. Receiving feedback from the customer during the iterations because needs and priorities can change over the period.
It’s important to have customer input not only during high-level planning but also during the implementation cycle in order to deliver the right product to the customer and have the greatest return on investment (ROI).
In order to better understand Agile Software Development and its principles, let’s examine the Agile execution step by step.
Execution in Agile Software Development starts with Strategy planning. This is the envisioning state where the goals, vision, and scope of the product is defined. It’s called a Visioning iteration and the output of such iteration is a Product Vision. In this stage, the stakeholder and customers identify and prioritize the MVP.
The next stage is Release Planning.
During the release planning, teams and stakeholders collaborate together to shape a release plan based on the prioritized list and rough estimates of the team. The initial deadline for the release fixes, which is usually 3 to 6 Months.
The output of the release planning is roughly estimated. And almost prepare the product backlog with User Stories. Base on the velocity of the team, the release plan is divided into small 1-2 weeks iterations required to deliver the estimated feature list.
Scrum, which is one of the most widespread Agile methods, prescribes four ceremonies for Agile teams to follow:
- Sprint Planning Meeting
- Daily Stand up
- Sprint Review Meeting
- Retrospective Meeting
During the sprint planning meeting, team members select from Product Backlog’s highest priority User Stories. It has been already defining during the backlog grooming. And commits them to one or two-week sprints based on the team’s capacity and velocity. The output of the Sprint Planning Meeting is Sprint backlog of estimated User Stories with defined Acceptance Criteria.
Daily stand up is the shortest ceremony in Agile Scrum. It is time-boxed to a maximum of 15 minutes. And takes place every day preferably in the mornings. It measures a team’s progress toward the sprint goal and identifies pitfalls early to take action to remove or correct them. During the meeting, the development team members answer three questions.
- What did I do yesterday that helped the Development Team meet the Sprint Goal?
- What will I do today to help the Development Team meet the Sprint Goal?
- Do I see any impediment that prevents me or the Development Team from meeting the Sprint Goal?
Stand up meetings help team members to collaborate and self organize in order to make quick decisions for fulfilling the sprint commitment and it is a key inspect and adapt meeting in Agile Scrum.
At the end of each sprint development teams have Sprint Review Meeting where they demonstrate the work they have accomplished during the sprint. It helps product owner and other stakeholders to evaluate the product and product backlog priorities. Scrum teams learn and then apply the knowledge gained in the next Planning Meeting.
Retrospective meeting is one of the most important ceremonies in Agile Scrum. It’s purpose is to look back at the sprint and make assessments about what went right and what went wrong and make a collaborative decision to improve them.
Retrospectives enforces learning and continuous improvement, help teams to inspect and adapt quickly, increases teams productivity and technical excellence and is the heart of Agile Scrum
Self-organizing and cross functional teams in Agile Scrum
As you saw Agile decentralizes the power from management to development teams giving them power and authority to self organize and make decisions on the amount of work to be done at each iteration. The Agile Manifesto devotes a section to convey the belief that “the best architectures, requirements, and designs emerge from self- organizing teams”.
“Build projects around motivated individuals.
Give them the environment and support they need,
and trust them to get the job done”
Team Autonomy is one of the key principles of Agile Software Development. Team members who hold authority in their hands demonstrate better results in problem solving and decision making.
A higher degree of autonomy can lead to greater risk-taking and experimentation that makes teams more adaptive to environmental change.
Diversity of the cognitive approach helps to see the problems from different perspectives, stimulate learning and innovation, and think of multiple ways in problem-solving.
For more details about different cognitive approach benefits for the teams see The New new Product Development game article by Hirotaka Takeuchi and Ikujiro Nonaka.
It is important to note that Agile team members must have clear understanding of the vision and business goals of the software project in order to align the creativity and innovation with business values that are crucial to customers and stakeholders.
Agile is more about people than process. The process is attached to people. And the duty of the management is to shape an environment of freedom structure, transparency. And trust that encourages creativity and innovation in the context of Agile Execution.
Here are ways Agile Software development processes and practices help to develop high-
1. Quality Software at the same time maximizing
2. Return on Investment that is the highest interest to stakeholders.
3. Quick respond to change
The value of software cannot be predicted beforehand. It can only validate in the market place. The incremental delivery of software allows business people to embrace market changes and opportunities that arise during the project implementation.
Agile ceremonies like Stand-Ups and Iteration planning help teams change. And adapt to new things systematically while allowing stakeholders to reprioritize features quickly. Make changes between the iterations that will decrease costs and fit the market faster than their competitors.
4. Using short iterations to deliver releasable features
Our days technology evolves and changes at a very fast pace which limits the up-front planning possibilities for business people. Agile offers incremental delivery of product using iteration cycles ( mini releases) which are the subset of the final product.
These iterations include activities such as requirements analysis, design, development, and testing. Iterations are pre-determined and time-boxed. And the scope of the work delivered in each iteration fits the iteration length and not vice-versa.
5. Frequent feedback from end users
Early feedbacks help to mitigate the risks of the project as early as possible. 21-century customers have unpredictable needs and must involve in decision making throughout the project. Short iterations make it possible to gather feedback early and refine the requirements for the next iteration.
Agile methods quickly adapt to customer needs and plan requirements based on the observations of the market it operates in.
6. Time to market focus
One of the main principles of Agile is speed. Statistics show the most features that are designed by software developers are not being used. That’s why it is better to build less and work on the speed. In addition, building less avoids complex applications with numerous lines of codes that are difficult to maintain.
By delivering a piece of functions after each iteration, teams have the opportunity to remove impediments and inspect & adapt after each iteration. It is cost-sensitive to fix defects over time because there is the context switch, communication. And bugs being built on existing bugs. Often releases enable stakeholders to generate revenue earlier and also make customers wait for your next releases
Build quality is one of the 7 principles of Lean Software Development that executives in Agile Methods like Scrum and Extreme Programming. Agile Software Development Methodology offers processes like Test-Driven Development and Continuous Integration to ensure the delivery of high-quality software.
Test-driven development (TTD) is a practice where unit tests of features are written prior to writing codes for these features. It makes certain what the functions have to do and that the code actually does that. TTD reduces the technical risks that software implementation won’t match. What is being asked for? And market risks as it helps to identify the needs of the marketplace.
In traditional methods, programmers may work on the code from hours to weeks. And as a result, generate a lot of defects and bugs. Continuous Integration is a development practice that requires developers to integrate code into a shared repository several times a day.
Each integration is verified by an automated build to detect integration errors as quickly as possible. The benefits of continuous integration are that it minimizes costs because it takes less time to find and fix problems, increases visibility and communication, reduces time spent on debugging, and allows to deliver software more rapidly.
We’ve been using Agile Software Development in “Essential Solutions” for already 5 years. The client validates the success. Getting fast feedback from customers helps them to adapt to market changes, prioritize requirements based on the highest ROI, and make users happy by delivering high-quality software.
More articles –