|
||||
|
There are several different "agile" development methodologies. They succeed by creating strong communication between programmers and customers, requiring customers to focus on the most valuable system features to implement, using ultra-simple system design, delivering system increments early and often, and by testing the system exhaustively while it is being built. One of the most important principles is to incorporate customer feedback into the system throughout development. This allows constantly changing system requirements to evolve the system into what customers really want. With a traditional methodology (i.e. waterfall), projects are divided into distinct phases. Each phase gets its own time allotment, and then the project moves on. Projects get specified through requirements, analysis happens, design follows, then coding, and finally testing. Each phase occurs sequentially and so feedback in the form of a working product does not occur until deep into the coding phase, towards the end of your project. Even when the developer asks for feedback as part of each phase, the customer can only react to paper, which often is not meaningful enough for the customer. When feedback is delayed for this long, it is very easy to get off track and build the wrong product. It is also possible that the customer requirements have changed and the originally specified product will no longer meet your needs. This forces changes to be made at the end of the project when they will be most costly. If the business requirements are well understood up-front, this approach can still work. However, on a typical project, the customer does not always know exactly what they want ahead of time. In this case, it can be very valuable to gather an initial set of requirements and then build a prototype that the client can see. The client is then in a much better position early in the development process to tell you what they like and don't like. Based on that feedback, you could begin to build a production application, or you could enhance the prototype a second (and third) time to hone the requirements in even finer detail. This type of process has been successfully implemented under several "methodologies". IP has adopted the SCRUM methodology, which is illustrated and explained below.
SCRUM Development Methodology
Phase IPlanning: Definition of the new product based on currently known requirements (product functionality requirements that are not adequately addressed by the current product, bugs, defects, enhancements and technology upgrades), along with an estimate of its schedule and cost. If a new system is being developed, this phase consists of both conceptualization and analysis. If an existing system is being enhanced, this phase consists of limited analysis. Architecture: Design how the new product will be implemented. This phase includes system architecture and high-level design.
Phase IIPrototyping: Development of new product functionality, "prototypes", with constant respect to the variables of time, requirements, quality, and cost. Development is done interactively with the client through the steps of discovery, invention, implementation, review, and documentation. A typical cycle is one to four weeks.
Phase IIIClosure: Preparation for release, including final documentation, pre-release staged testing, and release. IP will work interactively with your company to ensure that the final product meets your needs. Because we use a prototyping method, you will always be "in the loop" with respect to the direction and status of the development. We are committed to producing a product that will be professional, high quality, high reliability and easy to use. The strength of IP's broad technology background, combined with the effective development method used, will ensure a cost effective solution to use and to maintain.
|
||
|