Methodological and Developmental Tools
Ludmila Orlova
HOW USE OF AGILE METHODOLOGY IN SOFTWARE DEVELOPMENT INFLUENCE AGILITY OF THE BUSINESS
Agile methodology is widely distributed tool for software development. Presented article explore research data about use of these tools, its influence to quality of the end product and performance of development and overall agility of business and companies.
KEYWORDS:
Agile, software development, agile business
CONTENT
1 INTRODUCTION
2 AGILE SOFTWARE DEVELOPMENT
3 SCALING AGILE
4 AGILE BUSINESS
5 CONCLUSION
REFERENCES
1 INTRODUCTION
Fast pace of science progress in solid state electronics led to incredible progress of computer devices that on its turn demanded software to control and manage the power of computer calculations and usage.
Software engineering emerged in the beginning of 20th century and by the end of it became separate state of art science, activity and the profession for millions. There are about 18.2 million software developers worldwide, a number that is due to rise to 26.4 million by 2019, a 45% increase, says Evans Data Corp. in its latest Global Developer Population and Demographic Study (P. Thibodeau, 2013). Along with growing number of software developers (software development firms, projects and people involved), increased the need for effective management of software development process. This demanded new approach and methodology from business researchers and managers. In the last several decades there was huge number of research, both in IT field and business management dedicated to this area.
Popularity of agile software development methods started about decade ago and at present these methods are employed by many big, medium size and small companies. Still growing attention to agile methods from software development specialists confirm these methods filled the lack of management techniques for software development that emerged and developed extremely fast along with speedy advancement of hardware in IT area. Great number of research done in areas such as changes in performance of software development using agile methods or scaling agile for large companies and teams. Also one of modern trends is an attempt to apply agile methodology for project management, marketing, sales and other activities. Goal of this article is to explore influence of application agile methods in software development to agility of whole company and business. Presented work based on secondary data taken from a multiple sources, the work performed as an exploratory study and a review of existing research in the area.
2 AGILE SOFTWARE DEVELOPMENT
Definition of an adjective agile in English is: able to move quickly and easily or able to think and understand quickly (Oxford Dictionary, 2015). The most often contemporary use presented by the following sentence: Relating to or denoting a method of project management, used especially for software development, that is characterized by the division of tasks into short phases of work and frequent reassessment and adaptation of plans: agile methods replace high-level design with frequent redesign (ibid).
Software development or simply saying creating programs that allow computer to operate, originate way back from era of the first semiconductors and micro chipsets. At present time, software development more often seen as a complex process involving tasks such as programing, testing, documenting, bug fixing, maintaining and updating software product. Also it could be seen as a process starting from defining the idea and concept of software and ending with complete ready product. This process, software development, could be performed in a different ways; however, if it is considered as a business process, preferred one is structured, with predictable time schedule and estimable resource use. The product itself might vary widely. Product of software development could be an operating system or dedicated software for solving needs of particular group of users (for example CAD/CAE/CAM) or business needs specific. Already since 1950th software development companies started to look for a methods to organize their work. One of the first researches was conducted in 1986 by Hirotaka Takeuchi and Ikujiro Nonaka – The New Product Development game, addressed issues related to organization of the software development, comparing it with rugby game strategy (Takeuchi & Nonaka 1986). In 2001 Agile manifesto (Beck and others, 2001) was published by and since then extensive research was done in this field, books and other materials presented by thousands of researches and enthusiasts.
Picture 1 Example of simplified structure of agile software development. Source: https://www.cprime.com/resources/what-is-agile-what-is-scrum/
Principles eXtreme Programming (XP) is probably the best known agile software development methodology. It was introduced in 1999 by (Kent, 2000) as an answer to problems faced by the long development cycles in traditional development. XP emphasizes the facts that systems have vague user requirements, and acknowledges that rapid changes are inevitable. Gartner’s analysts (Thomas Murphy and David Norton) predict ed that by 2012 “agile development methods will be utilized in 80% of all software development projects”. Ninety-four percent (94%) of all organizations surveyed now practice agile. In 2013, the majority of respondents had fewer than 1,000 people in their software organization. But in 2014, approximately 35% of respondents had more than 5,000 people in their organization, and 20% worked in very large organizations with more than 20,000 people.(9th Annual State of Agile Survey, 2015).
Analyzing architectural and code quality weaknesses in 186 different enterprisegrade applications built using Java-EE, the CRASH Report found that over three quarters of the robustness, security, and changeability scores for applications developed with a mix of Agile and Waterfall methods were higher than the median scores for projects using only Agile methods. The report did not find differences in architectural or code quality between applications developed with only Agile or Waterfall methods (CRASH report, 2014).
Begel and Nagappan report on the results of an empirical study conducted at Microsoft to learn about Agile development and its perception by people in development, testing, and management. We found that one-third of the study respondents use Agile methodologies to varying degrees, and most view it favorably due to improved communication between team members, quick releases and the increased flexibility of Agile designs. The Scrum variant of Agile methodologies is by far the most popular at Microsoft. Our findings also indicate that developers are most worried about scaling Agile to larger projects (greater than twenty members), attending too many meetings and the coordinating Agile and non-Agile teams.(Begel & Nagappan, 2007) Interesting research of Lee & Xia, 2010, suggests that given the complex relationships among response extensiveness, response efficiency, team autonomy, team diversity, and software development performance, software teams face difficult challenges in identifying and achieving the right balance between the agility dimensions. The basic principles of agile and scrum software development state that developers should be able to be in close contact with the end customers. The role of product owner define person who keep close contact with customer, collect information about needs and give priority for development tasks using different techniques. This fits perfectly needs of small companies, when there’s only limited number of customers. Scaling of agile principles for larger companies need to include several scrum teams, replicated teams or even scrum of the scrum methods.
Picture 2 What causes agile projects to fail?. Source: http://www.versionone.com/pdf/state-of-agile-development-survey-ninth.pdf
3 SCALING AGILE
Scaling agile often understood in meaning of involving more teams into use of agile methods. This could be divided into two main directions: one is about bigger software development teams with large amount of developers involved or distributed location of teams, other about applying agile for non-software development activities. Also possible way is to use scrum of scrum, when leaders of several scrum teams form scrum team themselves. Other example of using agile methodology would be to apply it for a scientific or scholar research. Both academic research and the software development produce information-focused artifacts – either the logics captured in the computer code or the knowledge captured in the research publications, so similar principles may be applied to both endeavours (Hazzan & Tozik, 2014).
Picture3 Scaling methods and approaches by popularity. Source: http://www.versionone.com/pdf/state-of-agile-development-survey-ninth.pdf
Significant number of research was performed in field of scaling agile for software development, count of research articles only about Nokia experience goes up to hundreds. One of the most complete works is academic dissertation of Laanti M., 2012 – Agile methods in large-scale software development organizations. Work suggests that level of success of using agile frameworks on a large scale is dictated by how much the same principles are shared within the organization as a whole (Laanti, 2012).
Other practices include attempts to use agile methods for non-software development activities, for example often in our days to hear about agile project or product management, marketing or agile sales.
Picture 4 Leffingwell D., Drew Jemilo, Mauricio Zamora, Colin O’Neill, Alex Yakyma 2011-2014 Scaled Agile Framework® (SAFe®) . Source: http://scaledagileframework.com/
4 AGILE BUSINESS
Agile development process expects to have connection with business needs through the person with role “product owner” or “business owner”. In case when business portfolio consists of several products, each targeted to different business segment, however interrelated technically with each other, it become complicated. When business needs are driven by sales team question arise how to link knowledge about customers and needs accumulated by sales team with product and business owners.
Forrester defines business agility as the quality that allows an enterprise to embrace market and operational change as a matter of routine (Le Clair, 2014). Constantly changing requirements that customers put on the software companies are exactly such ever changing environment. Most of the business models in our days use OODA loop (Observe, Orient, Decide, Act), as a natural basis behind canvas (such as LEAN canvas as one example) and strategic decision making. Commonly used term for such approach is Agile, however definition of it is very complex and varies from the context. The main areas where this approach is investigated and applied the most are manufacturing and software development. Over the last ten years Agile Methods have reached the mainstream: according to a Forrester study, 35% of the respondents stated that agile most closely reflect their development methods (West & Grant 2010).
Picture 5 Process model of a Responsive Organization by Michael Hugos, 2008. Source (Hugos, 2009)
Lately, whole definition of the company shifted from the structure defined by hierarchy to matrix type. A continuous learning environment fueled by round-theclock customer insight and feedback demands teams, environments, decisionmaking structures, and funding models that exhibit the true meaning of the word agility — resilience, responsiveness, and learning (Gothelf 2014). There are many dimensions of agility. Ideal Agile Enterprise have no limitations on excelling its agility and employing lean thinking in any of its operations, products or strategies. This idea traces back to Lean Manufacturing and Lean Enterprise. In our days also Lean startup model gain its popularity. If I would summarize all these trends, agile business would be broader concept. It’s about logic behind the company, it serve as its skeleton. From theoretical point of view, this belongs rather to Complex Adaptive System theory. Where behavior of constantly changing and adapting system is analyzed, and software development company is an example of such system.
5 CONCLUSION
While being extremely popular in the last decades, agile software development methods are often refer only to management methods for software development exclusively. There are many theoretical claims from agile methodology adepts, it is expected that using agile methods, any company could achieve significantly greater performance and quality in software development or other company’s activity. Data from the recent research shows that the best result come from the companies where agility understood in wider context, involving whole company vision and strategy. Additionally it should be used alongside with other methods, such as waterfall or Kanban that provide best results for other than software developments departments. This article presented an overview of existing data about applying of agile methods in software development, scaling agile and applying in elsewhere in the company, like in marketing or sales, and what effect this make to agility of the company overall. Traditionally, agile transformation starts from bottom up, from the lower level of software development. Often is begins as initiative of developers and only after proven positive results accepted on higher levels of the company. This later lead to partly forced decisions of top management to re-evaluate business strategy and implement agile methods into company overall operations. Reviewed sources tested against the suggested model and confirm it. Agility in software development brings better results in terms of quality and speed of software product development when agile values lifted high in overall company structure and blended into company vision. Additionally, agile methods comply with theories of Complex Adaptive Systems. If we would define company, its strategy and actions as an CAS – using agile methods proves to be effective method of achieving agility in process of pursuing business goals. It appears that agile is effective method to application, with proven results. But it is rather one of techniques for business agility. Business agility in its turn should be considered from Complex Adaptive Systems point of view. Where constantly changing markets, requirements and trends force system like a company to adapt and evolve constantly.
REFERENCES
Thibodeau P., India to overtake U.S. on number of developers by 2017. Computerworld, 2013. Available on the web at http://www.computerworld.com/article/2483690/it-careers/india-toovertake-u-s--on-number-of-developers-by-2017.html
Kent B. Extreme Programming Explained, Addison-Wesley, 2000
CRASH report 2014 Available on the web at http://www.castsoftware.com/news-events/pressrelease/press-releases/thank-you/new-report-confirms-agile-waterfall-mix-produces-the-bestcode-quality
Leffingwell D., Drew Jemilo, Mauricio Zamora, Colin O’Neill, Alex Yakyma 2011-2014 Scaled Agile Framework® (SAFe®) [online, referenced 03.12.2014]. Available on the web at: http://scaledagileframework.com/
Aaltonen J., 2014. Challenges in managing large-scale agile software development transformation. Master thesis, University of Turku
Oxford Dictionary online, 2015. . [online, referenced 20.04.2015]. Available on the web: http://www.oxforddictionaries.com/definition/english/agile
Gothelf J., 2014. Bringing Agile to the Whole Organization. Harvard business review
Le Clair C., 2014, Measure and improve your business agility, Forrester. [online, referenced 20.04.2015]. Available on the web at: http://www.slideshare.net/forrester/measureandimproveyourbusinessagility
Hirotaka Takeuchi and Ikujiro Nonaka, 1986. The New Product Development game. Harvard business review
J. Gothelf, 2014. Bringing Agile to the Whole Organization. Harvard business review
Johanna Rothman. "When You Have No Product Owner At All". http://www.jrothman.com/. Retrieved 2014-06-08
K. Beck and others, 2001, [online, referenced 03.12.2014]. Available on the web at: http://agilemanifesto.org/
Hazzan O. & Tozik S. Agile research, 2014. [online, referenced 10.04.2014]. Available on the web at: http://www.infoq.com/articles/agile-academic-research
Lee & Xia, 2010, Software Development Agility [online, referenced 10.04.2014]. Available on the web at: http://www.robertfeldt.net/courses/agile/lee_2010_integrated_analysis_of_sw_dev_agility.pdf
Gartner agile research, 2012. [online, referenced 10.04.2014]. Available on the web at: http://www.infoq.com/news/2012/12/gartner-agile-2012
Begel A. and Nagappan N, 2007 Usage and Perceptions of Agile Software Development in an Industrial Context: An Exploratory Study. [online, referenced 10.04.2014]. Available on the web at: http://research.microsoft.com/apps/pubs/default.aspx?id=56015
9th Annual State of Agile Survey, 2015. [online, referenced 10.04.2014]. Available on the web at: http://www.versionone.com/pdf/state-of-agile-development-survey-ninth.pdf
Hugos M. 2009. Strategically Focused, Tactically Responsive. SIM Chicago Chapter. Center for systems innovation. online, [referenced 03.12.2014]. Available on the web at http://www.simchicago.org/files/Strategically%20Focused%20Tactically%20Responsive.pdf
West D. & J. Hammond 2010. The Forrester Wave: Agile Development Management tools. Forrester Research