Showing posts with label definition. Show all posts
Showing posts with label definition. Show all posts

Definition of Agile Software Development - In A Nutshell

I really like this one page introduction to agile methods compiled by Sanjiv Augustine.


But it still leaves me wanting less.

It's a really nice, fairly concise explanation of agile methods, although is still focused on development professionals with experience and/or a keen interest in software development and project management practices.

The agile manifesto also provides a similarly concise and good explanation for anyone really interested in the distinction between agile development and more traditional methods of software development and project management.

But still it leaves me wanting less.

Where I personally struggle, is where a business person, a friend or associate asks casually, "what is agile development?"

I know they're not really that interested. They certainly don't want to get into the whys and wherefores of software development practices. But they are curious and are asking more on a business-social level.
In these situations, it just asks for a one-line answer. One statement of what agile development is, what makes it different, why it is relevant. Boiled down to a simple statement. Agile development, in a nutshell.
I think the best I can do is this:

"Agile development is a different, more collaborative way of managing software projects, where the team delivers products in small steps, allowing customers to make changes as needed".

Can you do any better? (comment below)

read more

10 Key Principles of Agile Software Development

Agile Software Development is one of the big buzzwords of the software development industry. But what exactly is it? Agile Development is a different way of managing software development projects. 10 Key Principles, and how Agile Development fundamentally differs from a more traditional Waterfall approach to software development, are as follows:

1. Active user involvement is imperative
2. The team must be empowered to make decisions
3. Requirements evolve but the timescale is fixed
4. Capture requirements at a high level; lightweight & visual
5. Develop small, incremental releases and iterate
6. Focus on frequent delivery of products
7. Complete each feature before moving on to the next
8. Apply the 80/20 rule
9. Testing is integrated throughout the project lifecycle – test early and often
10. A collaborative & cooperative approach between all stakeholders is essential

There are various methodologies and standards that address various aspects of software development, for instance PRINCE2 for Project Management, Use Cases/UML for Analysis and Design, ISEB for Testing. Although these are typically applied to Waterfall development projects, elements of these methods can also be applied in an Agile Development approach.

There are also methods that are specifically designed around Agile Development:

DSDM is probably the original Agile Development method. DSDM was around before the term Agile Development was even invented, but is absolutely based on all the principles we’ve come to know as Agile Development.

SCRUM is also an Agile Development method, which concentrates particularly on how to manage tasks within a team-based development environment.

XP (eXtreme Programming) is a more radical Agile methodology, focusing on the software development process and addressing the analysis, development and test phases with novel approaches aimed at making a substantial difference to the quality of the end product.

DSDM is probably the most complete Agile methodology, whereas SCRUM and XP are easier to implement and complementary because they tackle different aspects of development projects and are both founded on the same principles of Agile Development.

In reality, there is no magic bullet for software development. The real trick is to know lots of techniques from various Waterfall and Agile Development methods, and to select a mixture of the best approaches that are most appropriate for any given situation. To do this reliably with any degree of success really requires a lot of experience and skill.

In Agile Development projects, Project Management takes a slightly different form, relying more on the project manager's skills in communication, facilitation, coordination, and emphasising less on planning and control.

Agile Development can be a very exciting and invigorating approach, although some projects suit Agile Development more than others. The collaboration and visibility can provide a much richer and more rewarding experience for teams to develop great software products. Agile Development can be a lot more enjoyable than the staid Waterfall approach that requires lots more documentation and is less flexible by its nature. And when people enjoy their work, it’s amazing what they can achieve!

See also:
10 Key Principles - PowerPoint Presentation

P.S. Click one of the icons below to join the growing community of people reading this blog by RSS or by email...
subscribe by rss feedsubscribe by email

read more