What is Agile?
Agile can be referred to as the ability to create and respond to change. It is a way of dealing with, and finally succeeding in, an uncertain and turbulent environment present. The respected authors of the Agile Manifesto chose “Agile” because the term for this whole idea as that word represented the adaptiveness and response to vary which was so important for their approach.
It’s really about thinking through how one can understand what’s going on in the environment that one is in today to identify what uncertainty one is facing and figure out how one can adapt to that as he/she goes along.
What is Agile Software Development?
Agile software development is described more in terms of frameworks such as Scrum, Extreme Programming or Feature-Driven Development (FDD). Agile software development is considered more than practices such as pair programming, test-driven development, stand-ups, planning sessions, and sprints.
What are Agile Methodologies?
If Agile is said to be a mindset, then what does that say about the idea of Agile methodologies? To answer this question, one may find it helpful to have a clear definition of methodology. According to Alistair Cockburn, a methodology is the set of conventions that a team agrees to follow. That innately means that each team is going to have its own methodology, which will be different in either small or large ways from every other team’s methodology respectively.
Thus Agile methodologies are the conventions that a team chooses to follow in a way that follows Agile values along with principles. AGILE methodology is a contained practice that promotes continuous iteration of development and testing throughout the software development lifecycle of the chosen project. Both development and testing activities are concurrent unlike the Waterfall model presented.
Agile software development emphasizes four core values that constitute its innovation.
1. Both Individuals and teams’ interactions with processes and tools
2. Working software over comprehensive documentation
3. Customer collaboration over contract negotiation
4. Responding to change over following a plan
What about the aspect of Agile Project Management or Agile Business Analysis?
Previously Individuals that were involved with software development activities but didn’t personally develop software now seek to work out how these Agile ideas applied in their line of work.
The Agile Manifesto and the 12 Principles were written by a group of software developers (and a tester) to address issues that software developers faced. When you think of Agile as a mindset, that mindset can be applied to other activities.
When you do that, Agile becomes an adjective. It describes the way in which you perform some activity. It does not create a new methodology for the reasons explained above.
When you want to understand Agile project management, ask “How might we perform project management in a way that allows us to create and respond to change and deal with uncertainty?” Agile Alliance and Project Management Institute (PMI) explored this question through a joint effort to make the Agile Practice Guide (Available to Agile Alliance Members).
What about Business Agility?
The given two concepts noted above are examples of an attempt to move Agile “outside of software.” Those efforts have resulted recently in the Business Agility movement.
If one extends the idea of Agile as a mindset, then people seeking Business Agility ask themselves, “How might we structure, manage and operate our organization in a way that enables us to create and respond to change and deal with uncertainty?”
You might say that business agility is recognition that in order for people in an organization to operate with an Agile mindset, the entire organization needs to support that mindset. Agile software development was never truly reckoned as Agile until the organization evolved its structure and operations pertaining to work in an uncertain environment.
Agile Scrum Methodology
The Scrum is considered a light-weight agile project management framework that contains broad applicability for managing and controlling iterative and incremental projects of all kinds of projects. Popular scientists such as Ken Schwaber, Mike Beedle, Jeff Sutherland, and others have contributed significantly to the evolution of Scrum over the last decade. Scrum has the ability to increase importance in the agile software development community because of its simplicity, efficient productivity, and its ability to act as a wrapper for various engineering practices given by other agile methodologies. With Scrum methodology, the “Product Owner” is able to work closely with the team in order to identify and prioritize system functionality in the form of a given “Product Backlog”. The Product Backlog thus, entails features, bug fixes, non-functional requirements, etc. – this incorporates whatever needs to be done to successfully deliver a working software system to your need.
Scaling Agile to the Enterprise
The head of Jira Align at Atlassian- Steve Elliot, had used the analogy of individuals crawling, sitting, walking, running and flying when talking about the evolution of Agile within a large organization. This, in turn, Scaling Agile to all enterprises
The Agile Software Development Cycle
The Agile software development cycle can be easily broken down into six steps for further understanding of its process: concept, inception, iteration/construction, release, production, and retirement.
The series of steps involve well-informed identification of business opportunities in each potential project as well as an estimation of the time and work that will be required to complete the project. This information can then be used to prioritize projects and discern which ones are worth pursuing based on technical and economic feasibility.