The software community has always been a communicative one, and new development approaches have been a regular fixture. Today’s landscape sees agile methodologies very much in vogue – but are these affecting the mainstream, or are they just the preference of a vocal minority? More importantly perhaps, how do they fit into your development activities?
Agile Development - Is it Right For You? Reaping the benefits of modern software practice
Freeform Dynamics Ltd. October 2008
In association withThe software community has always been a communicative one, and new development approaches have been a regular fixture. Today's landscape sees agile methodologies very much in vogue - but are these affecting the mainstream, or are they just the preference of a vocal minority? More importantly perhaps, how do they fit into your development activities?
Key Findings
Agile development is becoming a recognised alternative to traditional approaches
The principles behind software development success are similar whatever the adopted approach. Agile or structured methods both have prerequisites in good collaboration and communication, appropriate tools and facilities in place, and the existence of some kind of rule book which can be followed. Truth be told, there are advantages to be had from all kinds of more formalised approach, over ad-hoc approaches to development.
However there are certain characteristics which differentiate Agile projects
Where Agile shines is in projects with fast changing requirements, for instance user-facing applications, and projects for which timeliness is a key characteristic. Such projects favour the higher level of collaboration which is also a facet of Agile approaches. However this collaboration is no easy thing to achieve in itself - indeed - it implies a certain level of organisational maturity which some development shops may find hard to come by.
Fundamentally, Agile is as much about structure and process as traditional approaches
However, the principles involved in each will apply differently depending on what is adopted, not least that a major success factor of Agile is its continuous approach to delivery. This implies not only that the 'Agile experience' can become quite intense for developers, managers and business representatives, but also that it can succeed or fail based on availability of tooling that can support the continuous nature of integration and delivery.
Implementation factors include sourcing, geography and organisation
There are a number of contextual factors that will dictate how best to apply Agile methods. Notably the way that subcontract resources are involved in a project, the geographic distribution of staff, and the organisational structures involved.
The goal is, and should remain effective software delivery to the business
Ultimately, the key to the success of any development methodology is how to ensure the resulting software delivers on its intended purpose, namely helping business users do their jobs effectively.
The research upon which this report is based was designed and interpreted on an independent basis by Freeform Dynamics. The research was sponsored by Perforce Software and conducted in partnership with The Register, as a series of polls across a 4-week period in September and October 2008, which resulted in a total of 1,729 responses.
01 Agile Development: Is it Right for you?Introduction
This report collates the findings of a number of short workshop studies on Agile software development, undertaken in partnership with The Register in September and October 2008. We conducted four workshops over the same number of weeks:
. Working environments for developers (670 participants)
. Distributed development and outsourcing (369 participants)
. Scaling agile software development (184 participants)
. Managing agile software projects (406 participants)
This report collates some of the outputs of these workshops to help organisations decide whether Agile approaches are right for them. But what are 'Agile approaches'? All development has to follow some sequence of steps - requirements have to be gathered, applications need to be designed, code needs to be written and tested, and then the whole thing needs to be built. From this starting point, software development has been subject to three different ways of doing things:
. Make it up as you go along - that is, do the above, but without any clear structure
. Structured methodologies such as Waterfall, SSADM and SADT - which impose a specific set of large-scale steps, to be executed in a single sequence
. Agile methodologies such as P... [download for more]