Agile is an iterative approach to software development that builds software incrementally from the start instead of trying to deliver all at once. It was designed for rapidly changing environments and embraces incremental development. Key aspects of agile include satisfying customers, welcoming changing requirements, frequent delivery, trusting motivated individuals, working software as a measure of progress, and face-to-face communication. The agile process focuses on design, implementation, and code development through iterations rather than extensive documentation.
Agile is an iterative approach to software development that builds software incrementally from the start instead of trying to deliver all at once. It was designed for rapidly changing environments and embraces incremental development. Key aspects of agile include satisfying customers, welcoming changing requirements, frequent delivery, trusting motivated individuals, working software as a measure of progress, and face-to-face communication. The agile process focuses on design, implementation, and code development through iterations rather than extensive documentation.
Agile is an iterative approach to software development that builds software incrementally from the start instead of trying to deliver all at once. It was designed for rapidly changing environments and embraces incremental development. Key aspects of agile include satisfying customers, welcoming changing requirements, frequent delivery, trusting motivated individuals, working software as a measure of progress, and face-to-face communication. The agile process focuses on design, implementation, and code development through iterations rather than extensive documentation.
Agile is an iterative approach to software development that builds software incrementally from the start instead of trying to deliver all at once. It was designed for rapidly changing environments and embraces incremental development. Key aspects of agile include satisfying customers, welcoming changing requirements, frequent delivery, trusting motivated individuals, working software as a measure of progress, and face-to-face communication. The agile process focuses on design, implementation, and code development through iterations rather than extensive documentation.
Download as DOCX, PDF, TXT or read online from Scribd
Download as docx, pdf, or txt
You are on page 1of 8
Agile software Development
Agile is a time-bound, iterative approach to software delivery that builds
software incrementally from the start of the project, instead of trying to deliver all at once. Why Agile? Technology in this current era is progressing faster than ever, enforcing the global software companies to work in a fast-paced changing environment. Because these businesses are operating in an ever- changing environment, it is impossible to gather a complete and exhaustive set of software requirements. Without these requirements, it becomes practically hard for any conventional software model to work. The conventional software models such as Waterfall Model that depends on completely specifying the requirements, designing, and testing the system are not geared towards rapid software development. As a consequence, a conventional software development model fails to deliver the required product. This is where the agile software development comes to the rescue. It was specially designed to curate the needs of the rapidly changing environment by embracing the idea of incremental development and develop the actual final product. Characteristics of Agile Model 1. Highest priority is to satisfy the customer through early and continuous delivery of valuable software. 2. It welcomes changing requirements, even late in development. 3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shortest timescale. 4. Build projects around motivated individuals. Give them the environment and the support they need, and trust them to get the job done. 5. Working software is the primary measure of progress. 6. Simplicity the art of maximizing the amount of work not done is essential. 7. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
Development Process in Agile
In Agile development, Design and Implementation are considered to be the central activities in the software process. Design and Implementation phase also incorporate other activities such as requirements elicitation and testing into it. In an agile approach, iteration occurs across activities. Therefore, the requirements and the design are developed together, rather than separately. The allocation of requirements and the design planning and development as executed in a series of increments. In contrast with the conventional model, where requirements gathering needs to be completed in order to proceed to the design and development phase, it gives Agile development an extra level of flexibility. An agile process focuses more on code development rather than documentation. Advantages: Deployment of software is quicker and thus helps in increasing the trust of the customer. Can better adapt to rapidly changing requirements and respond faster. Helps in getting immediate feedback which can be used to improve the software in the next increment. People – Not Process. People and interactions are given a higher priority rather than process and tools. Continuous attention to technical excellence and good design. Disadvantages: In case of large software projects, it is difficult to assess the effort required at the initial stages of the software development life cycle. The Agile Development is more code focused and produces less documentation. Agile development is heavily depended on the inputs of the customer. If the customer has ambiguity in his vision of the final outcome, it is highly likely for the project to get off track. Face to Face communication is harder in large-scale organizations. Only senior programmers are capable of taking the kind of decisions required during the development process. Hence it’s a difficult situation for new programmers to adapt to the environment. V Model The V-model is a type of SDLC model where process executes in a sequential manner in V-shape. It is also known as Verification and Validation model. It is based on the association of a testing phase for each corresponding development stage. Development of each step directly associated with the testing phase. The next phase starts only after completion of the previous phase i.e. for each development activity, there is a testing activity corresponding to it.
Verification: It involves static analysis technique (review) done without
executing code. It is the process of evaluation of the product development phase to find whether specified requirements meet. Validation: It involves dynamic analysis technique (functional, non- functional), testing done by executing code. Validation is the process to evaluate the software after the completion of the development phase to determine whether software meets the customer expectations and requirements. So V-Model contains Verification phases on one side of the Validation phases on the other side. Verification and Validation phases are joined by coding phase in V-shape. Thus it is called V-Model. Design Phase: Requirement Analysis: This phase contains detailed communication with the customer to understand their requirements and expectations. This stage is known as Requirement Gathering. System Design: This phase contains the system design and the complete hardware and communication setup for developing product. Architectural Design: System design is broken down further into modules taking up different functionalities. The data transfer and communication between the internal modules and with the outside world (other systems) is clearly understood. Module Design: In this phase the system breaks dowm into small modules. The detailed design of modules is specified, also known as Low-Level Design (LLD). Testing Phases: Unit Testing: Unit Test Plans are developed during module design phase. These Unit Test Plans are executed to eliminate bugs at code or unit level. Integration testing: After completion of unit testing Integration testing is performed. In integration testing, the modules are integrated and the system is tested. Integration testing is performed on the Architecture design phase. This test verifies the communication of modules among themselves. System Testing: System testing test the complete application with its functionality, inter dependency, and communication. It tests the functional and non-functional requirements of the developed application. User Acceptance Testing (UAT): UAT is performed in a user environment that resembles the production environment. UAT verifies that the delivered system meets user’s requirement and system is ready for use in real world. Principles of V-Model: Large to Small: In V-Model, testing is done in a hierarchical perspective, For example, requirements identified by the project team, create High-Level Design, and Detailed Design phases of the project. As each of these phases is completed the requirements, they are defining become more and more refined and detailed. Data/Process Integrity: This principle states that the successful design of any project requires the incorporation and cohesion of both data and processes. Process elements must be identified at each and every requirements. Scalability: This principle states that the V-Model concept has the flexibility to accommodate any IT project irrespective of its size, complexity or duration. Cross Referencing: Direct correlation between requirements and corresponding testing activity is known as cross-referencing. Tangible Documentation: This principle states that every project needs to create a document. This documentation is required and applied by both the project development team and the support team. Documentation is used to maintaining the application once it is available in a production environment. Why preferred? It is easy to manage due to the rigidity of the model. Each phase of V-Model has specific deliverables and a review process. Proactive defect tracking – that is defects are found at early stage. When to use? Where requirements are clearly defined and fixed. The V-Model is used when ample technical resources are available with technical expertise. Advantages: This is a highly disciplined model and Phases are completed one at a time. V-Model is used for small projects where project requirements are clear. Simple and easy to understand and use. This model focuses on verification and validation activities early in the life cycle thereby enhancing the probability of building an error-free and good quality product. It enables project management to track progress accurately. Disadvantages: High risk and uncertainty. It is not a good for complex and object-oriented projects. It is not suitable for projects where requirements are not clear and contains high risk of changing. This model does not support iteration of phases. It does not easily handle concurrent events.