I’ve heard the term being thrown around in industry quite a bit and always had some form of self defined understanding of the phrase, but decided that it would be a good idea to look around for a more concise definition as I’m currently in a situation at work which involves agile software development.
Here is a definition I came across via AgileModeling:
Agile is an iterative and incremental (evolutionary) approach to software development which is performed in a highly collaborative manner by self-organizing teams with “just enough” ceremony that produces high quality software in a cost effective and timely manner which meets the changing needs of its stakeholders.
The definition is a personal definition, but it’s a very accurate one to say the least. The same author goes on to looking at four points when determining whether a team is agile or not and these are the points:
- Is the team taking a test-driven approach to development?
- Are stakeholders active participants in development?
- Is the team producing high-quality, working software on a regular basis?
- Is the team working in a highly collaborative, self-organizing manner?
After reading these four points and their explanations, it’s definitely got me thinking on a different level and I now understand that many businesses are claiming to be agile, but really aren’t.
Much like the SDLC (System development life cycle), agile software development follows a life cycle as well and you can read more about that by clicking here.





