AGILE METHODOLOGY
Table of Contents
Disclaimer: We partner with companies that offer products that help our readers achieve your goals. Any time you purchase through our partner links, we get paid for the referral at no additional cost to you! Read our disclosure for more information
Hello everyone and welcome back to my blog. Today, I have a very interesting topic to talk to you about. It is about Agile methodology.
It talks about the most efficient way to simplify your life through technology.
A lot of people have asked me, how did I find myself in the technology world?
Here is the simple answer: My desire to be more pushed me to acquire knowledge that translated into technology and today I will be sharing a major part of my knowledge.
Please sit back and relax as I take you into my world a little.
What is Agile?
Agile simply put, is a set of values and principles that a team uses to guide them in software development.
It is a collection of beliefs that teams can use to make a decision about how to do the work of developing software.
It is an iterative approach to project management and software development that helps teams deliver value to their customers in the fastest and most effective way possible.
Agile is not a methodology, neither is it a specific way of developing software. A methodology would mean a set of steps that should be taken to achieving something.
Agile software development isn’t that. It is more like a guide; it’s a set of values and principles. This is why Agile is completely flexible and responds to change.
Agile basically seeks to emphasize the value of quick iteration and to satisfy clients and customers while at it.
Agile Principles
The Agile frameworks prioritize certain things over others. It prioritizes individuals and interactions over processes and tools, working software over comprehensive documentation, customer collaboration over contract negotiation and responding to change over following a plan.
Below are the 12 Agile principles that help guide teams when developing a software.
- Our highest priority is to satisfy the customer through 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 frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
- Business people and developers must work together daily throughout the project.
- Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
- The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
- 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 indefinitely.
- Continuous attention to technical excellence and good design enhances agility.
- Simplicity–the art of maximizing the amount of work not done–is essential.
- The best architectures, requirements, and designs emerge from self-organizing teams.
- At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
What are the different Agile frameworks?
Agile is simply a set of values and principles. There are different frameworks that use these Agile principles and values. The most popular are seen below
- Scrum
- Kanban
- Crystal
- Dynamic Systems Development Method
Scrum
According to Scrum.org Scrum is a framework within which people can address complex adaptive problems, while productively and creatively delivering products of the highest possible value.
It is a simple framework for effective team collaboration or project.
Scrum operates on five values; Commitment, Focus, Openness, Respect, and Courage.
These values give direction to the Scrum Team with regard to their work, actions, and behavior.
Scrum requires a Scrum Master to foster an environment where:
- A Product Owner orders the work for a complex problem into a Product Backlog.
- The Scrum Team turns a selection of the work into an Increment of value during a Sprint.
- The Scrum Team and its stakeholders inspect the results and adjust for the next Sprint.
- Repeat
Scrum consists of three (3) pillars
1.Transparency
It should be in such a way that it’s easy for everyone to see how the development is being done. Transparency enables inspection. Inspection without transparency is misleading and wasteful.
2.Inspection
The Scrum artifacts and the progress toward agreed goals must be inspected frequently and diligently to detect potentially undesirable variances or problems. Inspection enables adaptation. Inspection without adaptation is considered pointless.
3.Adaptation
Scrum encourages adaptation. This means that where there is a need to change something in the development process, it is done immediately.
If any aspects of a process deviate outside acceptable limits or if the resulting product is unacceptable, the process being applied or the materials being produced must be adjusted.
The adjustment must be made as soon as possible to minimize further deviation.
Three (3) major components of Scrum
Scrum Team
This is basically the team in charge of the effective development of the software from the initialization phase to the finished work. Within a Scrum Team, there are no sub-teams or hierarchies. It is a cohesive unit of professionals focused on one objective at a time, the Product Goal. They are structured and empowered by the organization to manage their own work.
In the Scrum team, there are specific roles by three (3) sets of individuals
1.The development team
These are a group of professionals with the necessary technical knowledge who develop the project. The specific skills needed by the developers are often broad and will vary with the domain of work. However, the developers are always accountable for:
- Creating a plan for the Sprint, the Sprint Backlog;
- Instilling quality by adhering to a Definition of Done;
- Adapting their plan each day toward the Sprint Goal; and,
- Holding each other accountable as professionals.
2.The Product Owner
The Product Owner is the representative of the stakeholders and customers who use the software.
They focus on the business part and are responsible for the ROI of the project.
They translate the vision of the project to the team, validate the benefits in stories to be incorporated into the Product Backlog and prioritize them on a regular basis.
The role of the Product Owner includes:
- Developing and explicitly communicating the Product Goal;
- Creating and clearly communicating Product Backlog items;
- Ordering Product Backlog items; and,
- Ensuring that the Product Backlog is transparent, visible and understood.
The Product Owner may do the above work or may delegate the responsibility to others.
3.The Scrum Master
The Scrum Master is person who leads the team guiding them to comply with the rules and processes of the methodology.
They serve both the development team and Product Owner. Scrum master manages the reduction of impediments of the project and works with the Product Owner to maximize the ROI.
The Scrum Master is in charge of keeping Scrum up to date, providing coaching, mentoring and training to the teams in case it needs it.
2.Events
Events are used in Scrum to create regularity and to minimize the need for meetings not defined in Scrum. The following are the events seen in Scrum.
- Sprint – They are fixed length events of one month or less to create consistency. It is simply the basic unit of work for a Scrum team. A new Sprint starts immediately after the conclusion of the previous Sprint.
- Sprint Planning – This is where what is going to be done within a sprint is defined. It is usually held at the beginning of each sprint. This resulting plan is created by the collaborative work of the entire Scrum Team.
- Daily Scrum – The purpose of the Daily Scrum is to inspect progress toward the Sprint Goal and adapt the Sprint Backlog as necessary while adjusting the upcoming planned work. It is a brief meeting that takes place daily during the Sprint period. The Scrum Master should try to solve problems or obstacles that arise.
- Sprint Review – The purpose of the Sprint Review is to inspect the outcome of the Sprint and determine future adaptations. The Scrum Team presents the results of their work to key stakeholders and progress toward the Product Goal is discussed.
- Sprint Retrospective – The purpose of the Sprint Retrospective is to plan ways to increase quality and effectiveness. The team reviews the completed goals of the finished sprint and writes down the good and the bad, so as not to repeat the mistakes again.
2.Artifacts
1.Product Backlog
The product backlog is a list that collects everything the product needs to satisfy the potential customers. It is prepared by the product owner and the functions are prioritized according to what is more and less important for the business. It is basically what the product intends to look like and what is necessary to achieve that finished produact idea.
2.Sprint Backlog
The Sprint Backlog is a plan by and for the Developers. It is a highly visible, real-time picture of the work that the Developers plan to accomplish during the Sprint in order to achieve the Sprint Goal. The team establishes the duration of each Sprint. Usually the sprint backlog is displayed on physical boards called Scrum board. It makes the development process visible to everyone who enters the development area. It should also have enough detail that the scrum team can use to inspect their progress in the Daily Scrum.
3.Increment
The Increment is the sum of all the tasks, cases, user stories, product backlogs and any element that was developed during the sprint and that will be made available to the end user in the form of Software. It is simply the definition of done; from what was planned to be done to what was actually done.
Kanban
Kanban is another popular Agile framework used by IT developers and even cooperate/business world in achieving and getting projects done.
Kanban is a Japanese word that simply means ‘visual signal’. Kanban helps you visualize your work and progress so you can understand it better. This is done by;
- Building a Kanban board
- Use of Kanban cards
- Work-in-progress (WIP) limit
Kanban simply helps with work organization and it does so through visualization. There are principles of Kanban that help with smooth and effective project management.
- Visualize work flow
- Limit Work-In-Progress (WIP)
- Focus on flow
- Continuous improvement
Features of a Kanban Board
Kanban board is simply a board that visualizes the workflow of a project. It is the central place to execute your work based on your own workflow. It is designed to help visualize work, limit work-in-progress, and maximize efficiency (or flow).
A basic Kanban board comprises of the following
- Kanban cards: These are simply visual representations of each task. The cards contain information about the task such as deadline, who is responsible, description and so on
- Kanban Columns: The columns are the different stages of the workflow of which the final column is the finished stage which may be tagged as ‘done’ or ‘completed’.
- WIP limit: This is to limit the amount of work that can go on at a time. It helps with tracking progress and ensuring that each task is completed before bringing up another.
- Kanban Swimlanes: These are horizontal lanes you can use to separate different activities, teams, classes of service, and more.
Use of Kanban is helpful for effective software development and project management as it encourages enhanced flexibility, continuous improvement, increased collaboration, employee empowerment, smoother workflow, better inventory management and improves quality control.
Crystal
Crystal is an agile framework that focuses on individuals and their interactions, as opposed to processes and tools. It is built on two core beliefs:
- Teams can find ways on their own to improve and optimize their workflows
- Every project is unique and always changing
Crystal works best in the sense that it allows teams to work the way they deem most effective, it facilitates direct team communication, transparency and accountability and the adaptive approach lets teams respond well to changing requirements.
Dynamic Systems Development Method (DSDM)
Like the wider Agile family of methodologies, dynamic systems development method (DSDM) is an iterative approach to software development but adds additional discipline and structure to the process. Central to DSDM is the principle that any project must be aligned to clearly defined strategic goals and focus upon early delivery of real benefits to the business. DSDM is mostly used in the cooperate environment.
Other types of Agile frameworks include Feature Driven Development, Lean, Extreme programming and so on. They are frameworks that work based on the agile principles.
How do I choose Agile frameworks?
The choice of agile framework should be a collaborative discussion between teams, organizational leadership, and any stakeholders. Every part of the team should have input into what key features they will need from the framework. A good choice will depend on many variables, including the nature of the work, the experiences of the organization, cultural factors, and changes desired to meet the work objectives.
Agile tools
There are various Agile tools used by project managers. The purpose of such tools is for effective project management and collaboration. A good example is Jira and Trello.
- Jira
Jira is a software used in project management and software development. It was initially released in 2002 as a pure issue tracking software for software developers. Over the years, it has been adopted by non-IT teams for tracking any type of issue, task, and other work items. It is used for the following purposes:
- Requirements and Test case management
- In Agile Methodology
- Project Management
- Software Development
- Product Management
- Task Management
- Bug Tracking
Jira is great for Agile, supports third-party integrations, customizable and it works for different users.
- Trello
Trello is a collaboration tool that organizes your projects into boards. It is a visual way to manage projects and organize anything and it works great with Agile framework such as Kanban. It has similar appearance to a board with sticky notes in which projects and tasks can be organized into columns and moved around easily to indicate workflow, project ownership, and status. Just as with Jira, Trello supports integration with third-party apps and services.
[/et_pb_text][/et_pb_column][/et_pb_row][/et_pb_section]