Swimming Upstream in Turbulent Waters: Auditing Agile Development

Swimming Upstream in Turbulent Waters: Auditing Agile Development

Priyadarsini Kannan Krishnamachariar (State University of New York, Buffalo, USA) and Manish Gupta (State University of New York, Buffalo, USA)
DOI: 10.4018/978-1-5225-2604-9.ch010
OnDemand PDF Download:


Agile approach is a pragmatic fashion of software development, wherein the requirements are flexible to the changing needs of the customers, fast paced markets and the iterations of software are implemented and delivered based on business priorities. A risky or experimental project where the project requirements are not clear/not defined well in advance, are the most suitable candidates for adopting agile approach, as agile enables us to work with calculated risks during development, aiming to reduce the risks. The value of any implementation is realized only if it delivers benefits to organization and users, which could be assured by effective auditing of the implementation by understanding the implications of agile approach and figuring out right audit techniques and processes. Many organizations already have well established audit functions and matured IT Audit procedures for auditing traditional SDLC waterfall processes. Yet the methods for auditing software development based on agile approach requires a different attitude and audit techniques that goes well with the proactive nature of agile approach. This paper aims to present risk based audit approach on the agile implementation of software development, how risk identification and assessment can be merged along with the phases of software development and the ways by which agile techniques can be effectively utilized as tools for audit.
Chapter Preview

1. Introduction

In today’s dynamic business environment, where there is need to be on par with changing business requirements and the needs of users to survive in the market, it is advisable to adopt a flexible and effective software development approach. An Agile approach as opposed to other development methods, enables organizations to respond fast to changes, gaining competitive advantages on the market and ensures user satisfaction too. ‘A system development methodology refers to the framework that is used to structure, plan, and control the process of developing an information system (CMS & HHS, 2008). Several software development methodologies have emerged over years each having its own benefits and weaknesses and each of which works well for certain kinds of software development projects, teams and contexts. A methodology can help a project reach its goals by help track the productivity, project status and by providing the ability to manage the project, also it specifies the deliverables of each phases or the development process itself (CMS & HHS, 2008). Software development methodologies helps in achieving quality not only in final deliverable but also enables the successful delivery of artifacts like software design in a development process, if the methodology is customized and practiced to suit the project culture and requirements. The effectiveness of the development process practiced by a project team/organization directly affects the software design quality (Suryanarayana et al, 2015).

The traditional waterfall methodology works in a linear fashion, which requires to have the requirement clear before design/development starts and each phase is completed in specified period after that it moves to next phase and which is not open to new changes in the current development life cycle. Whereas, Agile projects deliver working software in frequent iterations(sprints), this helps to reap the benefits soon and the software is available to get feedback from the users achieving active user participation. In traditional waterfall, more importance given on planning, timelines, staffing and budgets in initial phases only and the entire system is delivered at the end of the project (CMS & HHS, 2008). Moreover, practicing agile methodology also reduces the development time frame for new processes and increasing flexibility for existing processes, when extra requirements are to be modified. This in turn allows us for solving client demands in less time, gaining more clients, lowering adaptation costs and finally increased revenue (Stoica et al, 2013).

Agile organizations can respond to the needs and changes quickly and encourages to be flexible. But to be successful, an agile organization must also know how to balance structure and flexibility. If everything changes all the time, then the planned forward motion becomes problematic. It is important for agile organizations or project to understand that balancing on the edge between order and chaos determines success. This clearly depicts that an agile process can be disadvantageous if the agility factor is not regulated properly, and so the level of agility needs constant monitoring in a project implementation scenario (Highsmith, 2002). A recent survey (Techbeacon, 2016) it was found that agile approach has been adopted worldwide by many organizations and a recent survey of development and IT professionals supports that. In a 2014 survey (Techbeacon, 2016), HP interviewed 601 development and IT professionals using an online survey. Most organizations surveyed reported that they primarily use agile methods. In fact, two-thirds described their company as either “pure agile” or “leaning towards agile,” A hybrid approach is used by 24 percent of respondents, which shows that they are practicing at least some agile principles in their implementation and management of their software development projects. Only nine percent responded that they are using “pure waterfall” or “leaning towards waterfall”.

Complete Chapter List

Search this Book: