Explain how the principles underlying agile methods lead to the accelerated development and deployment of software.
The principles of agile methods include: customer involvement – their role is providing new system requirements and to evaluate the system. Incremental delivery is another principle, where the software development specifies customer’s requirements to be included per increment.
This is tied to the people not process, where the development team is to be recognized, not exploited, and team members should be able to develop in their own means of working without set workloads. Embracing change is a principle where requirements for the system should be expected to change, and the design should be able to handle the changes. …show more content…
Accelerated development and deployment is dependent on these principles being able to improve on any potential changes, requirements or regulations that could hold the development process back.
Exercise 3.3
Extreme programming expresses user requirements as stories with each story written on a card.
Discuss the advantages and disadvantages of this approach to requirements description.
Extreme programming (XP) is a widely used form of the agile method: requirements are posed as scenarios implemented as a series of tasks with stakeholders, or customers and the development team. It can be done with the incremental approach, with smaller releases, a simpler design, testing first developments, collective ownership and having the customer come on-site to create story cards.
The advantages of XP are that scenarios can deal with operations that are easier to identify when user stories are put in place. Customers can include scenarios on cards to increase the understanding of their needs, thus increasing the chance that the software will meet those said needs. The disadvantages of XP include story cards which might miss certain needs if they aren’t clear – this can delay or increase development times. Two scenarios could be made, …show more content…
What are the potential difficulties with test-first developments?
The test-first development simplifies requirements during the coding stage of development, and includes an approach to testing that reduces the changes of undiscovered errors
– and updating the version, checking that executions took place correctly. If new methods are added then run new tests, meaning that test-first development supports programmers to create products that fall within the system requirements.
Difficulties include writing tests for better coding, and instead shortcuts are used which can include more errors. An example might be a developer doesn’t want to write full tests, and doing so will not check all test cases. A difficulty affecting customers are having to write incremental test development can be time consuming which would mean customers aren’t going to get their product in the deadline. Lastly, test-first development is hard to justify a set of tests – they might not all cover all test cases in a system. This brings up an issue that if all tests aren’t reviewed, bugs that aren’t detected are pushed into the finalized release of development.
Example 3.5
Suggest four reasons why the productivity rate of programmers working as a pair might be