The software development domain is rapidly maturing as new platforms appear in the market and computing philosophies continue to evolve. One of these shifts has been the adoption of a new development strategy known as the agile approach to programming. Agile programming is a set of core principles designed to make software development more efficient and effective. It offers many advantages over older and more traditional development methods. This report will introduce you to these advantages by covering the following topics:
• An Introduction to Software Development. • What Agile Programming Is. • What Agile Programming offers.
Introduction to Software Development
The role computers play in our lives continue to expand. They perform critical tasks at work and keep us connected to those around us. These computers may sit on our desk at work or be a mobile phone in our pocket. All of them run software to help us perform the tasks we need them to do everyday. Software is the mechanism by which we tell our computer what we want it to do. When we check our email, compose a document, or browse the internet we are interacting with software.
Software development is the process of designing, coding, and supporting the programs that computers run. While software is intangible it is still a product. A product that needs to be carefully engineered to meet the needs of computer users. Instead of being manufactured out of raw materials a software product is built with code. Code is a language that software engineers can write to then be compiled into exact instructions tell the computer how it should behave.
While this process of programming code is at the core of writing software it fails to capture all that constitutes software development. Software development is more than programming in the same way that producing and selling a car is more than its mere assembly. The broader process of product design and marketing must be included in any fair consideration of software development. The success of any product, including software, is generally more directed by these concerns than just how it is made. Products that customers are excited to purchase are often thoughtfully crafted to be as effective as possible at whatever task they are expected to perform. This means that the user experience that a customer has with that product must be approached with great intentionality. Effective software development is largely the design of compelling user experiences within a program. The software product being sold is this user experience and not just lines of code.
Making sure that focus remains on making compelling software products requires purposeful changes to the development process. Just like the products we use everyday change in the way that they are created and manufactured so too does the development process of software. One of the most exciting shifts in the software development process is agile programming.
What Agile Programming Is
Agile programming is a philosophy regarding how software development should be accomplished within a business context. It consists of a number of key concepts that are intended to bring software products to the market more rapidly. This quick to market method is preferred in order to be more adaptive to customer desires and industry changes. The agile philosophy is chiefly characterized by:
• Shipping the minimum viable product as quickly as possible. • Product requirements evolving through rapid iterations. • Product simplicity being valued. • Collaborative development by self organized teams. • Less process driven and predictive.
Ship the minimum viable product as quick as possible
One of the primary objectives in the agile programming model is to begin distributing software as soon as feasible. This is done by determining when the software product is viable in the market place. This is when the feature set required to make the program