AJ Square Inc
You are here : Resources Publications White Papers Agile product development approach
printPrint this Page Email E-mail this page
Resources

Agile Product Development Approach

An iterative and incremental (evolutionary) approach to software development which is performed in a highly collaborative manner by self-organizing teams within an effective governance framework 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 success ingredients in the  development approach
  • User satisfaction by rapid, continuous delivery of the software
  • Working software is delivered frequently (weeks rather than months)
  • Even late changes in requirements are welcomed
  • Simplified architectures
  • Close cooperation between end-user and developers
  • Projects are built around motivated individuals — who should be trusted
  • Regular adaption to changing circumstances                                                                       

The simplified principles involved in the  development process
  • Active User Involvement Is Imperative
  • Development teams are empowered to take decisions.
  • Agile Requirements Are Barely Sufficient
  • Delivering small & incremental releases
  • Frequent delivery of products
  • Deliver the important 80% of your product in just 20% of the time
  • Testing is integrated throughout the life-cycle
  • Close cooperation and collaboration between all team members and stakeholders

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 emphasizing 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!