There are different ways to understand any terminology and realistically it depends on individual’s understanding to clarify the definition, therefore, I am placing some different definitions of Agile term and hoping that any one of the below definitions from various well-known sources will be able to serve its purpose and make you understand what Agile means. So, enjoy reading further.
What is Agile?
Agile is an approach of software development to build software, incrementally using short repetitions of 1 to 2 weeks or 2 to 4 weeks so that the development is associated with the changing business requirements.
Agile software development includes various ways to software development under which requirements and solutions change through the collective effort of self-organizing and cross-functional teams and their customers.
It back the adaptive planning, evolutionary development, fast delivery, and frequent development, and it encourages quick and elastic response to change.
Agile process is a time-boxed, iterative type of approach to software development and delivery that builds software incrementally from the start of the project, in its place of trying to handover it all at once near the end.
Agile is an iterative approach to software development and project management that helps teams deliver the product to their customers faster and with fewer problems.
Instead of gaming everything on a “big bang” launch, an agile team delivers work in quick, small, but consumable, increments.
Agile is a process that helps team members provide quick and unpredictable responses to the feedback they receive on their projects.
It creates opportunities to assess a project’s direction during the development cycle. Teams evaluate the project in regular meetings called sprints.
Ufffff… is it too much?😊 Anyways, let me summarize in my words in short –
“A way of development of software which helps in reaching to market quickly and iteratively.”
In Feb 2001, at the Snowbird resort in Utah, a team of some 17 software developers met to discuss lightweight development methods. The outcome of their exhaustive meeting was the following Agile Manifesto for software development:-
They were trying to find healthier ways of developing software by doing it and helping others to do it. Through this meeting, they identified value –
- Individuals and interactions over Processes and tools.
- Working software over comprehensive documentation.
- Customers are collaboration over contract negotiation.
- Responding to change over following a plan.
So that, while there is a worth in the items on the right, we worth the items on the left more.
There are 12 principles of Agile manifesto as below –
- Manifesto actually provides the highest priority to satisfy the customer through early and continuous delivery of valuable software.
- Welcome changing requirements, even late in development. Agile processes bind change for the customer’s competitive business level advantage.
- Deliver ready software often, from a couple of weeks to a couple of months, with a preference for the quicker timescale.
- Business people and developers must work together not daily but throughout the project
- Build projects around motivated individuals. Give them the environment and support they really need and trust them to get the in-hand job done
- The most effective method of transmitting information to and within a development team is face-to-face conversation.
- Working or usable software is the primary measure of progress.
- Agile processes promote sustainable development. The promoters, developers, and users should be able to maintain a continue and constant step indefinitely
- Continuous attention to technical excellence&good design enhances the quickness.
- Simplicity–the art of exploiting the amount of work not done–is vital.
- The best architectures, requirements, &designsdeveloped from self-organizing teams.
- At regular intervals of time, the team reflects on how to become more productive and effective, then tunes and adjusts its behavior consequently.
The various characteristics of Agile are mentioned below –
- Agile Development Releases and Fixed-Length Iterations
- Agile Development Delivers-Working, Tested Software
- Value-Driven Development
- Continuous (Adaptive) Planning
- Multi-Level Planning in Agile Development
- Relative Estimation
- Emergent Feature Discovery
- Continuous Testing
- Continuous Improvement
- Small, Cross-functional Teams
Pros and Cons
There are obvious various advantages of using agile methodology over the waterfall approach or others.
Agile development methodology and testing practices have worked wonders for so many organizations with more positive aspects.
Its positive aspects are known and shown to uses and are not hidden, it is very much visible in the corporates/organization.
- Customer satisfaction is rapid, continuous development and delivery of useful software.
- Customers, Developers, and Product Owner interact regularly to emphasize rather than processes and tools.
- Product is developed fast and frequently delivered (weeks rather than months.)
- A face-to-face conversation is the best form of communication.
- It continuously gave attention to technical excellence and good design.
- Daily and close cooperation between business people and developers.
- Regular adaptation to changing circumstances.
- Even late changes in requirements are welcomed.
- It does not work well for small development projects.
- Lack of necessary designing and documentation.
- It needs an expert project member to decide crucial things in the meeting.
- The agile development methodology is slightly more costly as compared to other development methodologies.
- The project may quickly jump out of the track if the project manager is not crisp about requirements and what outcome he/she wants.
Agile Project Management in short
Agile project management is an iterative way for handling software development projects that emphases on continuous releases and incorporating customer feedback with every iteration to smoothen it.
Software teams have been in contract with agile project management methodologies since approx. a decade, improving their speed, collaboration, and ability to respond to market trends quickly.
The traditional agile methodology of managing a project can be categorized into two frameworks: 1) Scrum and 2) Kanban. While scrum is focused on fixed time project repetitions, Kanban is focused on continuous releases. Upon completion, the team immediately moves to the next item.
Scrum is actually a framework for an agile project management approach that uses fixed time iterations of work, known as sprints. There are 4 ceremonies that are bring structured to each sprint.
Scrum tasks actually start with the backlog or body of work that requires to work on.
In scrum, there are two backlogs: one is the product backlog (from product owner) which is a prioritized list of required features, and the other is the sprint backlog which is having issues from the top of the product backlog until the capacity for the next sprint is reached.
Scrum Team members have unique roles specific to their stake in the process. Typically, there’s a scrum master, the product owner, who’s the voice of the product; and the scrum team, who are often cross-functional team members in charge of getting stuff done.
The four ceremonies of scrum
|Sprint Planning||Sprint Demo||Daily Standup||Retrospective|
|A meeting with the team for planning that determines what to complete in the coming sprint.||A sharing meeting where the team shows what they have prepared & shipped in that sprint.||Also known as the stand-up, a 10-15 minute mini-meeting for the software team to sync.||A review of what did and didn’t go well with actions to make the next sprint better.|
The scrum board
A scrum board is used to imagine all the work in a given sprint. During the regular sprint planning meeting, the team moves tasks/items from the product backlog into the sprint backlog.
Scrum boards can have multiple steps available in the workflow, like To Do, In Progress, and Done. Scrum boards are the key component for increasing transparency in agile project management for real-world projects.
How Kanban works
Kanban is nothing but a framework for agile project management, that matches the work to the team’s working capacity. It’s focused on getting things complete and done as fast as possible, giving teams the ability to react to change even faster than scrum.
Unlike Scrum, Kanban has no backlogs (usually). Instead, work sits in the To-Do column. This enables teams to focus on continuous positive releases, which can be done at any point in time.
All work is clearly visible, scoped, and ready to execute so that when something is completed, the team immediately moves on to the next task to improve productivity.
The amount of work is coordinated to the team’s capacity through WIP Limits, which is a predefined limit of work that can be in a single column at one time (except the To Do column). The Kanban framework includes the following four components:
The four components of Kanban
|List of work
|Columns or lanes||Work in Progress Limits (WIP)||Continuous Releases|
|List of work, or stories, are defined as issues or tasks that need to get done or completed.||Used on a Kanban board to differentiate tasks from different workstreams, users, projects, etc.||A rule to limit the number of tasks to be done based on the team’s capacity.||The team works on the number of user stories within the WIP limit and can release at any time.|
The Kanban board
A Kanban board is used to visualize all the work that’s being completed. It’s also used for planning resources allowing project managers to see the work and develop timelines accordingly.
A Kanban board is structured into columns and lanes that user stories pass through on their way to their completion state. Stories are available in the To-Do column until the WIP limit allows for the next task to be worked on.
The list of tasks/work should be divided into relatively small issues and organized by priority. As you can clearly see in this example, lanes can help keep the higher priority items separated from “everything else.”
Agile Key Terms
When implementing a workflow for the agile team, always start a simple way. For software teams, we recommend these basic workflow states:
Work that has not been started in the pending state
Work that is actively being looked at by the team but not yet done
Work which is completed, but awaiting review.
Work that is completely finished and meets the team’s definition of done.
Work that has been implemented, but is still waiting for a tester review.
READY TO MERGE
Code that has been developed &reviewed and is ready to merge into the master or release branch.
[Each state in the workflow doesn’t need to be handled by a different person. As the team matures, developers handle more and more of the work–from design all the way through to delivery effectively. An autonomous team that can handle heterogeneous work is one of the hallmarks of agility after all.]
These also called “user stories,” which are short requirements or requests written from the perspective of an end-user.
These are large bodies of work that can be broken down into a number of smaller tasks (called stories).
These are collections of epics that drive toward a common goal.
These are large focus areas that span the organization.
A product backlog is a list of tasks/items to be done. Items are ranked with feature descriptions. In an ideal scenario, items should be broken down into small user stories.
The product owner is a key member of the Agile delivery team, responsible to collect and rank business requirements in the product backlog.
A product owner communicates to all involved what is to be done in a release/iteration. He sets the commitments &is responsible to protect the team from any change in requirements during an iteration.
A unit of calculation used by the agile team to estimate relative sizes of user stories and features.
Same as Iteration.
A fixed duration of time in which a deliverable (major feature) is to be developed. Normally, along with fixing the start and end date of a timebox, the number of resources is also fixed for either that module or project.
It is a work that contributes towards the completion of a user story within the iteration. User stories are decomposed into various tasks and each task can be divided between team members marking them as the owner of the tasks.
Team members can take responsibility for each individual task, update estimates, log work is done, or to-do as desired.
A measure to weight the accepted work in an iteration. Normally it is the sum of story points accepted in an iteration that sprint.
DAILY STAND UP
The daily stand-up is a daily happening status meeting of the involved agile team member. This meeting roughly takes 10-15 minutes.
Each member of the team has to answer three important questions
- What you did yesterday?
- What you will do today?
- The problem you are facing . . . you are blocked due to
Agile / Scrum Actors
Here is the list of general Members / Actors involved in Agile / Scrum development cycle
- Product Owner
- Scrum Master
Here is the pictorial representation of actors’ engagement and process cycle of Agile –
In agile development, leading to project management is not really the easiest job. Jumping between your daily scrums to your next sprint, it causes really hard to focus on the work. The agile development tools fulfill your requirements and do it for you.
There are many more tools available in the market, from which some are free and some are paid too. Based on requirements and suitability/ease of client, you can choose or client can provide the same to the development team to perform various activities.
My dear friends, while going through all the above contents, I am sure that you were aware of many of the Agile terminologies and are now ready to jump in the Agile world with your routine project development activities starting from task understanding through deployment things.
However, to summarize all Agile material in a single article was not a good thing because it will be then overburdened to you.
I have captured some of the advanced terms above but there are few more advanced items which you should be aware of once you jumped into this river and learned/experienced the best practices of this world.
To move further I believe that you will keep going through its learning by reading more articles/blogs relating to Agile methodology.
So, Techies, gear up for putting efforts to give progress to your career growth. Keep moving and be Agile because you also need to reach to market quickly.