Changing technologies and new user demands require adaptive processes. Traditional development can work but is not perfect Literature exists on migrating from trad to agile development but only for developers or perhaps development team managers. Wider changes in an organisation may be required outside of the development team The entire organisation may be affected by migrating to an agile development methodology, and certainly it may require some culture change, be it localised or global. As a result, the management structure of the entire organisation needs to be made aware of this potential for change and adapt to it, in order to achieve a smooth transition
Requirements need to be set for each part of a development process, so that people know what to deliver. Iteration is a phase of development. Usually the highest-priority tasks are decided at the beginning of each iteration (sometimes these are called stories, depending on which development methodology is used) and then delivered by the end of that iteration. Where traditional development has iteration lengths of anywhere from 3 to 12 months, the short iteration length used in agile methods (1-4 weeks) helps them adapt to any changes. Very little formal documentation is required by agile development methodologies. Rather, knowledge about the project is kept in people’s heads. The current state of affairs may exist in the form of a set of story cards on a noticeboard, or some diagrams on a whiteboard, but there are no extensive manuals detailing the behaviour of each class and so forth. The general philosophy is that projects and their code should be self documenting. A coding standard including verbose comments is often suggested. The use of test driven development also helps document code, in that it declares how a module should behave (explain how this works – write test from spec, run test all the time, code confidence, never remove test, add them after complex bugs) Lack of formalised central role removes managers ability to assess progress. Xp has a coach, who has some ability to manage the team, though tends not to force team into a direction, rather just keep up to date on progress and planning. Agile methods develop a feature, chosen by the development team based on its priority. Traditional development methods define a set of processes to be used that should be followed in strict order, including the creation of many artefacts.
If requirements change during delivery, then by the time delivery occurs, the item produced will no longer match up with the requirements. Changing marketplace alters the way that businesses provide their products. This leads to constant organisational change. An inability to keep up with change will lead to lost revenue and reduced effectiveness. Traditional development has long iterations. If requirements change part way through developments, the iteration must be restarted. This is a massive loss in the case of traditional development. (why it’s ok for agile) Agile methodologies have the core value of, “if it has no business value, don’t do it”. There’s no need! Also rapid prototyping, get it out the so it has value asap and can gain feedback, be adapted, give others ideas, get put into use early,..
Present to management As opposed to dev team viewpoint
C&C defines centralised leadership roles with absolute authority, declaring progress between processes and what to do next Agile methods draw upon everybody to assess which tasks to undertake. This removes the central point of failure – or at least, risk of failure. Also ensures everybody gets a say Trad dev involves creating a vast array of artefacts – class diagrams, sequence diagrams, use case diagrams, data dictionaries, and so forth. Agile methods don’t really explicitly require any of these; rather, they can be created if they help get the job done quicker.
Creates dependency on dev team for progress reports Not transparent as it’s inside everybody’s heads! Reduced risk of knowledge loss if pair programming is used Team becomes fairly self regulating
Decision making is harder with agile development due to a more diverse environment. Instead of having centralised control, the development team and customer representative make decisions. For example, under XP, instead of being assigned tasks, developers estimate them and then elect which ones to do. With such a wide group, everyone involved in decisions will have a different agenda and set of priorities. This could lead to common ground becoming difficult to identify and a lack of unified direction.
Cooperative customers are required for agile development. The idea of having a customer on the development team creates ample opportunity for verifying requirements and rapidly getting answers to questions. The downside is that a customer representative needs to be found that fits in with agile methodology ideals
somebody that’s prepared to work on a level toward the same goals (collaborative), whose agenda matches that of all customer stakeholders in the project (representative), who can legitimately and accurately speak on behalf of all stakeholders and make decisions (authorized), who will see the project through to the end (committed), and who has enough knowledge about their orgnaisation and requirements to be able to answer questions (knowledgable). This is a fairly stringent set of attributes for a customer to have, and such a person may be too much of an investment for the client.
Migration from traditional to agile methodologies requires investment in procedures, structures and communications. Any change in process will require some overhead. The difference between agile and traditional methodologies is large, and so requires a significant overhead.
Investment is required in new object oriented tools. Traditional technologies will work with a number of programming paradigms. Agile methodologies strongly favour object oriented languages. Migrating to agile development may bring with it the cost of moving to a new development platform – this would include new development tools and staff training.
Agile development also needs practises such as unit testing and version control; there will again be a cost and culture change associated with introducing these factors to the development environment. Justify each of these Deployment = deployment tools for updating software. Mention fbsd’s cvsup vs. installshield as example
cited by the authors. They mention Boehm’s key works which seem to be widely regarded as authoritative in this field, which in itself is fairly narrow. The total range of cited documents remains small. Notably, there is only one citation of a practical experiment that provides results. All the others are presentations of concepts regarding agile development and introductions to the topics, from for example books. This is reflective of the available literature in the field and so not a huge fault with the paper; it simply presents known issues with migrating to agile methodologies, and does not attempt to discover new ones or assess the quality of previous studies. Older literature [C Larman, J Newkirk] is available that covers many of the issues presented by the authors, although this has not been drawn on. This literature covers the introduction of agile methodologies to organisations, from a management perspective, sometimes in very granular detail. This older literature offers methods for migration and solutions to some of the problems mentioned in the authors’ work, instead of simply highlighting the potential scope for problems. Some current literature is discussed, mainly from the managerial / organisation viewpoint that is being used. There is further literature available on the topic.
Case studies are out there, would be useful to see examples of where others have fallen down – and how badly – would have much more value than a generalised warning of costs. Methods of dealing with specific pitfalls, possibly from case studies (existing or new), would give more thinking material Metrics of exactly how strongly changes could affect things might be good. For example, kloc, productive hours, velocity during initial weeks, productivity / error rates of agile / trad teams. Maybe even the same to monitor impact on trad team when agile tech is introduced partway into a company Also, examining generic work in how change affects organisations in order to identify issue specific to agile methodologies would back up some of the presented material. As it stands, the costs involved in any organisational change are mixed with those induced by migrating to agile methodologies. Once costs that are caused by any generic change are used, there may be some agile-specific costs and trouble spots visible.
Review of: Challenges of migrating to agile methodologies
Organisational changes inmigration to agiledevelopment strategiesA review of:Challenges of migrating to agile methodologiesSridhar Nerur, Radha Kanta Mahapatra, George Mangalaraj inCommunications of the ACM, 2005, Vol 48 issue 5, pp 72 – 78
Introduction Agile development methodologies becoming popular Migration to agile development has been covered from developer point of view Organisations need to manage this change
What are agile methodologies? Cope with changing requirements Short iterations Few artefacts TDD No central control Feature-led, not task-led
Why agile methodologies? Development is a time-consuming process, and requirements change over time Organisations need to adapt to change Handle inaccurate requirements gracefully Business-oriented
Goals Present impact of agile methods on the structure of an organisation Compare traditional and agile methods from organisational viewpoint
Change in management style Traditional methods use command and control Agile methods favour a collaborative environment No central management Minimal artefacts showing current state
Power shift Lack of central control removes power from managers Tacit knowledge is not transparent Critical decisions made by development team
Elitist culture Traditional methods don’t compare well Agile development needs good staff Teams left with traditional methods feel left out
Harder decision making Decision environment is diverse Every stakeholder has a different agenda No centralised control
Cooperative customers Agile development includes on-site customer Opportunity to clarify requirements Rapid feedback cycle Expensive investment!
C.R.A.C.K. customers Collaborative Representative Authorised Committed Knowledgeable Picky list of requirements!
Cost of changes All change requires costs Planning Procedures Structures Skills Communication methods
New tools Agile technology favours OO Potential cost of new development platform Developmers need to acquire new language
New procedures Agile tech recommends procedures that may not be in place Unit testing Version control Deployment Refactoring
Current literature Relies on existing work Mainly a collation Older literature in the field exists Managerial viewpoint is fairly unexplored
Possible extensions Case studies Specific identification of pitfalls Metrics Examining general effect of organisational change
Conclusions Migrating to agile methodologies is costly Both developers and managers need to plan change Culture shift may occur Opportunities for further investigation