AGILE DEVELOPMENT Flashcards

1
Q

Describe rapid software development

A

 Specification, design and implementation are inter-leaved
 System is developed as a series of versions with stakeholders involved in version evaluation
 User interfaces are often developed using an IDE and graphical toolset

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is the main aim of the agile methods

A

The aim of agile methods is to reduce overheads in the
software process (e.g. by limiting documentation) and to
be able to respond quickly to changing requirements
without excessive rework.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What are the values of the Agile Software Development

A

 Individuals and interactions over processes and tools
- Building a team more important than building
environment.
 Working software over comprehensive documentation
-Produce no document unless need is immediate and significant.
 Customer collaboration over contract negotiation
-Make detailed plans for the next few
weeks, very rough plans for the next few months, and extremely crude plans beyond that.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

List some of the principles of Agile development

A

1.Early and Continuous Delivery of working Software
 The less functional(rudimentary) the initial delivery, the higher the quality of the final delivery.
 The more frequent the deliveries, the higher the final quality.

2.Welcome Changing Requirements
-Keep the software structure flexible, so requirement change impact is minimal.

3.Agile Processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.- pacing

4.Simplicity- the art of maximizing the work not done- Agile teams take the simplest path consistent with their goals

  1. Self- organizing teams- Work is not just assigned, the team determines the best way to fulfill them
  2. Constant reevaluation and adjustment
  3. Constant collaboration with customers , working with them ‘daily’. Also face to face communication is prioritized
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

In what situations are agile methods applied

A

 Product development where a software company is
developing a small or medium-sized product for sale.
 Custom system development within an organization, where there is a clear commitment from the customer to
become involved in the development process and where there are not a lot of external rules and regulations that affect the software.
 Because of their focus on small, tightly-integrated teams, there are problems in scaling agile methods to large systems.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What are the problems with agile methods

A

 It can be difficult to keep the interest of customers who are involved in the process.
 Team members may be unsuited to the intense involvement that characterizes agile methods.
 Prioritizing changes can be difficult where there are multiple stakeholders.
 Maintaining simplicity requires extra work.
 Contracts may be a problem as with other approaches to iterative development.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What are the possible issues that may arise in agile development in terms of Software maintenance

A

Problems may arise if original development team
cannot be maintained due to the minimization of formal documentation

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What are some things to consider when choosing between agile and plan-driven processes

A

 Is it important to have a very detailed specification and design before moving to implementation? If so, you probably need to use a plan-driven approach.
 Is an incremental delivery strategy, where you deliver the software to customers and get rapid feedback from them, realistic? If so, consider using agile methods.
 How large is the system that is being developed? Agile methods are most effective when the system can be developed with a small co-located team who can communicate informally. This may not be
possible for large systems that require larger development teams so a plan-driven approach may have to be used.
 What type of system is being developed?
-Plan-driven approaches may be required for systems that require a lot of analysis before implementation (e.g. real-time system with complex timing requirements).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What are some things to consider when choosing between agile and plan-driven processes

A

 Is the system subject to external regulation?
If a system has to be approved by an external regulator (e.g. the KAA approve software that is critical to the operation of an aircraft) then you will probably be required to produce detailed documentation as part
of the system safety case.
 Are there cultural or organizational issues that may affect the system development?
-Traditional engineering organizations have a culture of plan-based development, as this is the norm in engineering.
 How good are the designers and programmers in the
development team?
-It is sometimes argued that agile methods require higher skill levels than plan-based approaches in which programmers simply translate a detailed design into code
 What is the expected system lifetime?
-Long-lifetime systems may require more design documentation to communicate the original intentions of the system developers to the support team.
 What technologies are available to support system development?
-Agile methods rely on good tools to keep track of an evolving design
 How is the development team organized?
-If the development team is distributed or if part of the development is being outsourced, then you may need to develop design documents to communicate across the development teams

How well did you know this?
1
Not at all
2
3
4
5
Perfectly