Agile Software Development

The bases of Agile software development is on the need to satisfy the customer through early and continuous delivery of the valuable software. It’s a set of best practice that allows rapid delivery of high quality software to meet customer needs and also accommodate changes in the requirements. Agile development is the ability to develop software quickly keeping pace with the rapidly changing requirements. In order to achieve this agility the practice with necessary discipline and feedback are required and the design principles should keep the software flexible and maintainable. Agile methods are a family of development process which can be chosen based on the project needs. They are more adaptive methods whose focus is on adapting quickly. Some of the Agile methods are Agile Modeling, Extreme programming, Pair Programming, Test Driven Development, Feature Driven Development, Open Unified process, Re-factoring etc. Agile practices benefit in terms of increased project success rate and user acceptance, better risk management, delivery of quality content on time and most important adjust to changing requirements. Today in the field of military embedded systems, developers face the pressure to shorten the life cycle and adapt to the changing requirements without forgoing the quality and reliability required for the safety critical applications. This requirement has led the thinking in the direction of Agile approaches. Agile methods chosen with special care for some of the concepts like change management, traceability, test driven development and automated documentation could form an adaptable approach for the embedded systems. This paper describes Agile Software Development methodologies and practices, and about how Agile can we get with the military embedded systems. Keyworks: Agile software, pair programming, software development, software