(IJACSA) International Journal of Advanced Computer Science and Applications, Vol. 2, No. 4, 2011 72 | Page http://ijacsa.thesai.org/ Managing Knowledge in Development of Agile Software Mohammed Abdul Bari Department of Computer Science, College of Science & Arts University of Al-Kharj Wadi Al-Dawasir-11991, Kingdom of Saudi Arabia Dr. Shahanawaj Ahamad Department of Computer Science, College of Science & Arts University of Al-Kharj Wadi Al-Dawasir-11991, Kingdom of Saudi Arabia Abstract— Software development is a knowledge-intensive work and the main attention is how to manage it. The systematic reviews of empirical studies presents, how knowledge management is used in software engineering and development work. This paper presents how knowledge is used in agile software development and how knowledge is transferred to agile software using agile manifesto. It then argues for the need to scale agile development strategies in knowledge management to address the full delivery. The paper explores the eight agile software scaling factors with knowledge management and their implication for successfully scaling of agile software delivery to meet the real world needs of software development organization. Keywords- Knowledge management; Agile software; Scaling factor; Agility; Knowledge capturing I. INTRODUCTION Knowledge management is “A method that simplifies the process of sharing, distributing, creating, capturing and understanding the company knowledge [1]. Argyris [2] define “Knowledge is a fluid mix of framed experience, values, contextual information and expert insight that provide a frame work for evaluation and incorporating new experience and new information. According to Nonoka and Takeuchie [3] Knowledge passes through different modes of conversion , which makes the knowledge more refined and spreads it across different layers in an organization. II. KNOWLEDGE MANAGEMENT IN SOFTWARE DEVELOPMENT Software development is a knowledge intensive activity. The main assets of software development are not manufacturing plants, building and machines but the knowledge held by the employees and development culture of organization. Software development has long recognized the need for managing knowledge so that the community could learn from the knowledge management. As the field of software engineering matures, there is an increase demand for empirically validated results and not just the testing of technology [4]. Companies developing information system have fail to learn effective means for problem solving to an extent that they have learned to fail [5]. The main differences between methods are they are plan based or traditional, which rely primary on managing explicit knowledge or agile method [6]. There has been much discussion in software development, how to manage knowledge reusing life cycle experience which is gain by processing and producing software development projects which is often referred as experience factory [7] which is stored in experience base, by storing generalizing, tailoring and formalizing experience so that it is easy to reuse. In May 2002 issue of IEEE software [8] was devoted to knowledge management in software engineering, giving several example of knowledge management, applications in software companies. In 2003, the book “Managing Software Engineering Knowledge “[9] was published touching various range of topics from identifying why knowledge management is important in software engineering and development [10]. III. KNOWLEDGE MANAGEMENT IN AGILE SOFTWARE A. Agile Software development It consists of set of practice for software development, which has been created by experience practitioners [11]. In Williams and Cockburn [12] stated that agile development is “about feedback and change “. Agile software development techniques have taken the industry by storm, nearly 76% of software organization reported in 2009 that they had one or more agile software underway [13]. According to Agile manifesto 2001[14], it underlines 12 basic principles which are given below: 1. The organization highest priority is to satisfy the customer by continuous delivery of software. 2. Welcoming the changes in requirement even at the later part of development. 3. Delivering the software frequently. 4. Business people and developers must work together throughout the project. 5. Build project around individuals, give them environment and support they needed. 6. Face to face conversation in team with developers. 7. Working software is only means to progress. 8. Agile process prototype sustainable developed. 9. Continuous attention result is excellent product. 10. The act of maximizing the amount of work done. 11. Self-organized the team with requirement, architectures and others. 12. Give regular interval to the project team.