Practical work week 3.
Assignment week 4 in class.
Complete the following tasks:
What is the agile manifesto?
We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
That is, while there is value in the items on the right, we value the items on the left more.
What are the principles behind the agile manifesto? Describe each.
1. Our highest priority is to satisfy the customer through the early and continuous delivery of valuable software.
2. Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
4. Business people and developers work together daily throughout the project.
5. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
6. The most efficient and effective method of conveying information to and within a development team is a face-to-face conversation.
7. Working software is the primary measure of progress.
8. Agile processes promote sustainable development. The sponsors, developers and users should be able to maintain a constant pace indefinitely.
9. Continuous attention to technical excellence and good design enhances agility.
10. Simplicity—the art of maximizing the amount of work not done—is essential.
11. The best architectures, requirements and designs emerge from self-organizing teams.
12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behaviour accordingly.
What are the pros and cons of each value listed in the Agile Manifesto?
Individuals and interactions over processes and tools.
Pros: capable people can figure out how to accomplish tasks without a need of process.
Cons: without process productivity gains cannot easily be repeated on future projects.
Working software over comprehensive documentation.
Pros: without the need to document extensively software can be developed more quickly.
Cons: harder for people who did not develop the system to maintain it.
Customer collaboration over contract negotiation.
Pros: can adapt more easily to changing requirements.
Cons: customer representative may not have adequate knowledge of what is needed by their organisation.
Responding to change over following a plan.
Pros: adaptability leads to producing what the customer really wants.
Cons: customer may keep changing the requirements leading to longer delivery time
Why should an organisation go agile?
Revenue
The approach is iterative and incremental enabling some benefits to be realised early as the product continues to develop.
Speed-to-market
Research suggests about 80% of all market leaders were first to market. Agile development supports early and regular releases.
Quality
A key principle of agile development is that testing is integrated throughout the lifecycle.
Visibility
Active user involvement provides visibility of both the project’s progress and the product itself, which in turn helps to ensure that expectations are effectively managed.
Risk ManagementÂ
Small incremental releases help to identify problems early on and respond to change
Flexibility / Agility
Change is accepted and excepted. The timescale is fixed and requirements emerge and evolve as the product is developed. The user must understand this concept and make the necessary trade-off decisions, trading existing scope for new.
Cost Control
The scope of the product and its features are variable, rather than the cost.
Business Engagement/Customer Satisfaction
Due to active user involvement, high product and progress visibility and flexibility.
Right Product
By embracing change (with the appropriate trade-offs), the team build the right product.
More Enjoyable!
The active involvement, cooperation and collaboration make agile development teams a much more enjoyable place for most people. Less documentation and meetings.
What are the problems with agile models?
Active user involvement and collaboration
These principles are very demanding on the user representative’s time and require a big commitment for the duration of the project.
Requirements emerge and evolve – flexibility.
Creates potential for scope creep, which can create the risk of ever-lasting projects. Also,
there is much less predictability, at the start of the project and during, about what the project is actually going to deliver. This can make it harder to define a business case for the project and to negotiate fixed price projects. Contracts may be a problem as with other approaches to iterative development
Testing integrated throughout the lifecycle.
Testers are needed throughout the project and this effectively increases the cost of resources on the project.
Frequent delivery and feature sign off.
User acceptance testing is continuous. The users need to be ready and available for prompt testing of the features as they are delivered and throughout the entire duration of the project, time-consuming.
Intensity
Team members may be unsuited to the intense involvement that characterises agile methods.
What is agile modelling?
Agile Modeling (AM) is a practice-based methodology for effective modeling and documentation of software-based systems. At a high level AM is a collection of best practices, depicted in the pattern language map below (click on the practice for information). At a more detailed level AM is a collection of values, principles, and practices for modeling software that can be applied on a software development project in an effective and light-weight manner.

When should a company go agile, when should they not? (Select essays - home page)
Do Go Agile
Uncertain or volatile requirements.
If you don’t have stable requirements, then you aren’t in the position to have a stable design and follow a planned process
Responsible and motivated developers.
Adaptive processes rely on you trusting your developers, so if you consider your developers to be of low quality and motivation then you should use a predictive approach.
Customer who understands and will get involved.
Don’t Go Agile
Large team – over a hundred located in different places.
New approaches have been used on a small scale and are difficult to scale up. They have also been created with an emphasis on small teams.
Critical systems development where a detailed analysis of all of the system requirements is necessary to understand their safety or security implications.
Fixed price, or more correctly a fixed scope, contract.
1. Compare and contrast, heavy and light processes. (5 Marks)
Heavy Process
- Predictive making it difficult to respond to change.
- Elaborate, long-term, detailed planning.
- Disciplined, detailed process.
- Lots of documentation produced in a bureaucratic environment.
- Process oriented.
Light(Agile) Process
- Adaptive – embrace change.
- Iterative and incremental.
- Fast cycle/frequent delivery.
- Tacit knowledge – project knowledge in the participants’ heads rather than in documents.
- People oriented.
2. What are the key values of the agile manifesto? (2 Marks)
We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
That is, while there is value in the items on the right, we value the items on the left more.
3. What are the pros and cons of the agile manifesto? (4 Marks)
Individuals and interactions over processes and tools.
Pros: capable people can figure out how to accomplish tasks without a need of process.
Cons: without process productivity gains cannot easily be repeated on future projects.
Working software over comprehensive documentation.
Pros: without the need to document extensively software can be developed more quickly.
Cons: harder for people who did not develop the system to maintain it.
Customer collaboration over contract negotiation.
Pros: can adapt more easily to changing requirements.
Cons: customer representative may not have adequate knowledge of what is needed by their organisation.
Responding to change over following a plan.
Pros: adaptability leads to producing what the customer really wants.
Cons: customer may keep changing the requirements leading to longer delivery time
4. What are the principles of the agile manifesto? (6 Marks)
1. Our highest priority is to satisfy the customer through the early and continuous delivery of valuable software.
2. Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
4. Business people and developers work together daily throughout the project.
5. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
6. The most efficient and effective method of conveying information to and within a development team is a face-to-face conversation.
7. Working software is the primary measure of progress.
8. Agile processes promote sustainable development. The sponsors, developers and users should be able to maintain a constant pace indefinitely.
9. Continuous attention to technical excellence and good design enhances agility.
10. Simplicity—the art of maximizing the amount of work not done—is essential.
11. The best architectures, requirements and designs emerge from self-organizing teams.
12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behaviour accordingly.
5. Discuss the problems associated with an agile approach. (10 Marks)
Problems
Active user involvement and collaboration
These principles are very demanding on the user representative’s time and require a big commitment for the duration of the project.
Requirements emerge and evolve – flexibility.
Creates potential for scope creep, which can create the risk of ever-lasting projects. Also,
there is much less predictability, at the start of the project and during, about what the project is actually going to deliver. This can make it harder to define a business case for the project and to negotiate fixed price projects. Contracts may be a problem as with other approaches to iterative development
Testing integrated throughout the lifecycle.
Testers are needed throughout the project and this effectively increases the cost of resources on the project.
Frequent delivery and feature sign off.
User acceptance testing is continuous. The users need to be ready and available for prompt testing of the features as they are delivered and throughout the entire duration of the project, time-consuming.
Intensity
Team members may be unsuited to the intense involvement that characterises agile methods.
Practical Problems With Agile Methods
- The informality of agile development is incompatible with the legal approach to contract definition that is commonly used in large companies.
- Agile methods are most appropriate for new software development rather than software maintenance. Yet the majority of software costs in large companies come from maintaining their existing software systems.
- Agile methods are designed for small co-located teams yet much software development now involves worldwide distributed teams.
6. What are the three phases of Scrum? (3 Marks)
1. The initial phase is an outline planning phase where you establish the general objectives for the project and design the software architecture.
2. This is followed by a series of sprint cycles, where each cycle develops an increment of the system.
3. The project closure phase wraps up the project, completes required documentation such as system help frames and user manuals and assesses the lessons learned from the project.
7. In the contest of Scrum explain each of the following terms: (7 Marks)
a. Product backlog; b. Sprint backlog; c. Sprint; d. Product owner; e. Scrum master.
Product Backlog
Collection of requirements (user stories) for the product – at project start
– a few, detailed user stories; collection evolves over time and requirements will be refined over time, Managed by the Product Owner
Sprint Backlog
Collection of requirements (user stories) that are selected for implementation during next sprint Managed by the Team
Sprint
Period (2-4 weeks) in which a shippable product increment (executable, tested, and documented) is created by the Team
Time-boxed:Â i.e. ends exactly at the scheduled time
Product Owner
At end of Sprint: Product Owner accepts/rejects the final results (i.e., the software)
– Partially completed or incorrect results will not be shipped (no compromise on quality) and go back to the Product Backlog for inclusion in the next Sprint (Backlog)
Scrum Master
Takes care of the proper implementation of Scrum.
Supports the team in process-related issues.
8. Describe the Scrum Team. (6 Marks)
Small team size:
– Typically 5 to 9 team members.
Cross-functional:
– Design, coding, testing, etc.
– Members must have a broad range of skills.
– Every team member is an expert in his/her field but can also take over responsibilities of other team members.
Teams are independent/empowered
– Decides which requirements to include in next Sprint (i.e., the team has the power to reject too many requirements).
– Decides independently which tasks to perform to implement the requirements.
Members should work in close distance (ideally in the same room).
Members should be full-time.
Membership should change only between sprints.