Software Project Management

¡Supera tus tareas y exámenes ahora con Quizwiz!

What is more successful, waterfall or agile approaches?

According to the standish group: 42% of agile developed products are successful and only 14% of waterfall developed products are successful

What are Vertical & Horizontal prototyping?

- *Vertical*: some important technical features are fully implemented - to test if these can be done and are satisfactory for the user - *technical prototype* - *Horizontal*: all features working but not fully - to test out overall structure and feel of system - cf *Evolutionary Delivery* - aka - *User interface prototyping*

What are other types of Prototyping?

- *Experimental / Technical*: to determine if technical implementation is feasible on a system - *Exploratory*: all prototyping is exploratory as it explores user requirements - *Rapid*: ability to use a tool to throw together a prototype quickly - could then be thrown away or evolutionary - *Concept*: test the concept of an idea.

What are some Agile *principles*?

- *Individuals and interactions* over processes and tools - *Working software* over comprehensive documentation - *Customer collaboration* over contract negotiation - *Responding to change* over following a plan - *Customer satisfaction* by rapid delivery of useful software - Welcome changing requirements, even late in development - Working software delivered frequently - Projects built around motivated individuals - Self organizing teams

When does the testing happen?

- *Module Test*: do the modules behave as they should - *Integration and system test*: as the system is integrated together does it work correctly and match the design? - *Acceptance test* - does the system match what was promised in the requirements specification and does it work in the target environment after installation? - *The Real Test*: when user finally gets to work with the system will they realise whether their initial requirements were right.

What do iterative/agile approaches provide?

- *Process models* - provide overall framework for the system development - *Iterative/agile approaches* - provide a philosophy/environment for implementing the process model. - Include team organisation, client communication, meeting structures, schedules, risk mitigation, etc - Generally based on *evolutionary model* - Early *management* of *risk* and *assumptions* - Early *value* and continuous *feedback* - *Incrementally* developed *high quality solutions* - Allow for rapid (but controlled) *requirements change* - Frequent *stakeholder involvement*

How does the Spiral model integrate with other models?

- *Waterfall*: each spiral release could be the output from each stage of the process - *Evolutionary*: each spiral release could be next evolution - *Incremental*: each spiral release could be next increment

What are the characteristics of the Scrum approach?

- Agile approach based on *managing people and iterations* - Teams are self organising and co-located - Recognizes that customers change their minds

Compare the Spiral model to Evolutionary model.

- Appears similar to evolutionary in that system 'evolves' in stages over time - but doesn't 'evolve' the system directly during each stage as such - Differs in that each cycle also attempts to identify alternatives, resolve risks, plan next cycle and review current one - Also - outcome from each cycle is not necessarily an improved software system but could be an artifact of a larger process - e.g. a specification

What are some characteristics of XP - extreme programming?

- Captures many ideas of Agile methods - Teams of 2 to 12 members - Programming in pairs - Suited to projects where *requirements change* - Emphasizes *teamwork* (managers/customers/developers all part of team) - A form of evolutionary delivery - Aims to deliver sofware that is needed *as it is needed*, rather than all at a future date

Why do projects fail?

- Changes in scope mid-project - Poor estimates in planning - Insufficient resources - Weak project planning

What are some characteristics of agile methods?

- Delivery in *short bursts* - *Similar* to evolutionary and incremental - Emphasis is small teams - Teams are self organizing - Face to face comms with user - Projects with unclear or changing requirements

What are the *advantages* of the Software Development Process Models

- Divides large problem down into easy to understand tasks at each stage - Sharpens focus - Supports planning and contents of resources - Improves estimates of cost and time - Provides progress and visibility - Provides structure

What is the *build and fix* model?

- Earliest model of software dev - No formal spec - Build and use, fix when broken and repeat

What are the *advantages* of the stage wise model?

- Encourages one to *specify* what the system will *do* before building it - Encourages one to *plan* how components *interact* before building - Enables project managers to *track* progress more accurately and spot *slippages* earlier - Demands that *documents* are *produced* which can later be used to test the system - Reduces dev and maintenances *cost* because of the above - Enables resources to be more *structured* and *manageable*

*Advantages* of the Waterfall Model?

- Ensures requirements capture is performed *before* coding - Provides engineering order to the process - Invovles stricter *controls* over changes - *installation* and *acceptance* more clearly defined

How is progress tracked with the Scrum method?

- Everyday, at the same time, the team have a brief meeting. To check progress and communicate all blocking issues - The meeting is facilitated by the Scrum master - For larger projects there may be a Scrum of Scrums

Some points on the waterfall model

- Flow of project is downwards with possibility of some splashing back - With sound project management, can provide good basis for project control - If project is long, requirements can become out-of-date - Target system not available until end of project - Implicit assumption is that all will go well - Therefore, suitable for projects with complete specifications, small risk of change and short

What are characteristics of effective project management?

- Have top level management support - Follow a recognized process - Keep it simple -Small team - Implement change frequently - Use proven technology

What are the 3 layers of the V process model?

- Implementation layer: coding - Architecture layer: Design & testing - User layer: Requirements definition, specification, implementation & operation

*Disadvantages* of the Waterfall Model?

- It doesn't happen: real projects don't follow a sequential flow - Doesn't accommodate *uncertain* and *changing* *requirements* (like ordering with no chance to look around, compare prices...) _ *Delivery* only at the *end* (long wait)

What is the V Process Model?

- It is a *refined interpretation* of the stage-wise or waterfall models. - Model emphasizes that *activities in latter* part of process are about testing implementations of earlier stages - - ie *validating* with respect to outcomes from earlier stages, not just *verifying* current stage's output

Why can too much functionality be a hindrance?

- System becomes more complex - meaning that adding to this can be harder - Easier functionality added first - Gold plating - worth the effort? - Staf may change as project evolves - so they are unaware of the code structure

What are the disadvantages of a functionality time graph?

- Naive interpretation, rather flat, two dimensional representation: does not show other factors affecting functionality (e.g. resource capabilities) - Does not account for project type: some models more suited to certain kinds of projects than others - Assumes single type of project development: long unclear requirements

What is the plan of the incremental model?

- Non-computer steps should be included - eg new process; - Each step should deliver something of benefit to the user - An increment could be part of the product breakdown structure

What is Boehm's Spiral 'Model'

- Not a 'model' as such but a means of *incorporating risk and project management* into the software development process. - More of a method - Most life cycle models can be derived as special cases of the spiral model. - The aim of the cycle might be to explore a range of alternatives (eg by prototyping) rather than develop an individual solution - Clients may be willing to proceed a cycle at a time - committing money in discrete lumps

Where is there sometimes problems with implementation?

- People are natural *optimists* - The requirements analysis and system design are not perfect - Projects are unique, sometimes neither customer nor developer have had enough experience to know what should happen

What does the word 'done' mean to different types of Scrum members?

- Programmer: done when coding complete - Tester: when all the code thoroughly tested - Business person: when we can sell it

What are the 3 methods for *Software Project Management*?

- Propriety (eg. Navigator - Ernst & Young) - Public Domain (eg. Agile Methods) - Home Tailored

What are the advantages of a functionality time graph?

- See *effectiveness* of a model in terms of functionality versus time - Useful for *evaluating alternative models* when deciding which approach to use - Visual interpretation of otherwise unclear comparison - Teaching aid for students and managers, important to choose right model - Good to show to users to justify/explain things.

What are the characteristics of the V process model? And its difference with waterall

- The *left hand side* defines what happens in stages which derive elements of the system - *Right hand side*: delivery of elements to form the system -If problems are found on the RHS, they can be fixed with reworks of the LHS Makes explicit iteration and rework hidden in the waterfall model Focus of *waterfall is activities*. Focus of *V is outputs and correctness*

What is the Evolutionary Delivery model?

- The development of a system in *small steps* such that each step must produce something *deliverable* to the customer - The customer should be able to use it and *refine his/her requirements* (feedback on what's right/wrong so far): this is the key difference with incremental - Can change direction: allows functionality to be redefined at each increment

What are the standard questions of a Scrum meeting?

- What have you done since last meeting? - What will you do between now and the next meeting? - Is there anything preventing you from doing what you have planned?

What is the incremental model?

-A model delivered as a series of working subsystems -Overall structure in place: parts are brought online as system is developed -Added functionality at each stage, in each increment

*Why* do we prototype?

-Prototyping provides an effective method of *generating feedback* about what is good and what is bad about an idea - It is often the *only* really effective method for doing this

How do we decide what to increment next?

-Some steps will be dependent on others - Others may be in any order: do the best "value-for-effort" increment next - Value to cost ratios may be used = - V/C where - V is a score 1 - 10 representing value to customer - C is a score 0-10 representing cost of development

What are the scrum *roles*? What do they do

1) Product owner: - holds the vision for the product - represents the customer - owns the product backlog - orders (prioritizes) items in the backlog - creates acceptance criteria - Avalable to answer team members' questions 2) Scrum master: - scrum expert and advisor - coach - facilitator 3) Team member: - Completes user stories to incrementally increase product value - self organises - creates and owns estimates - owns 'how to do the work' decisions

What are the objections to incremental delivery?

1. "Our system cannot be divided into smaller steps": this is a *myth*, it can be divided with practice 2. "Our system developers don't know how": education and training can show benefits of this approach 3. "Management won't like it": Wrong - management will love it! - management are normally concerned about the lack of detail for later steps because time and resource predictions are vague for later parts of the project.

What are the *advantages* of incremental delivery?

1. *Feedback* from early stages used in developing later stages 2. *Shorter development* thresholds: important when requirements are likely to change 3. User gets some *benefits earlier*: may assist cash flow 4. Project may be put aside temporarily: more urgent jobs may emerge 5. Reduces *gold-plating* 6. Data entry-type tasks early on - enable data to be recorded

*When* can prototyping be used?

1. *Requirements Capture*: used to pin down user requirements of the system, test the feasibility of a solution idea, market analysis, test a user's reaction to a system 2. *Design*: test users ability to use and navigate around screens

What are the 2 prototyping models and their objectives?

1. *Throw-Away*: to validate or derive system requirements 2. *Evolutionary*: to deliver an acceptable system to the user

What are the *advantages* of the Spiral model?

1. Accommodates *requirement changes* 2. Incorporates *risk management* in software process 3. Integrates reliable *project management principles* with the SDLC 4. Uses *identical approaches* for each development stage thereby providing sound management understanding of the process

What are the *disadvantages* of the build and fix model?

1. After several fixes the software becomes difficult to maintain as it becomes poorly structured. 2. It often does not match the user's requirements. 3. It can be costly to maintain because of its poor structure and lack of definable output that can be tested.

What are the 3 steps of the *software life cycle*?

1. Analysis/Synthesis (eg. prototyping approach) 2. Synthesis/Operation (eg. evolutionary delivery) 3. Operation/Retirement (eg. phase out)

What are the disadvantages of the Evolutionary Delivery model?

1. Code needs to be well structured/designed and well commented so it can evolve - not such a bad thing. 2. Initial release may look limited to the user - may create a bad impression to the client 3. Tight *configuration management* (CM) needed: CM used to control different versions of a system as it develops - referred to as Version Control and Revision Control

What are the 4 stages of Configuration Mangement

1. Configuration Identification 2. Change Control 3. Status Accounting 4. Configuration Audits

Define each stage of Configuration Management.

1. Configuration Identification: identify attributes that define the system, and you want to control. Set a baseline 2. Change Control: manage and approve changes to the item. Reconfigure the baseline 3. Status Accounting: record the baseline 4. Configuration Audits: ensure changes do what they say they will do

What are the agile coverage methods? Describe them

1. DSDM - Dynamic Systems Devlopment model: - Framework for Agile delivery - Tailored and used with other Agile methods 2. Agile PM: - Provides good practice enabling project managers to adopt Agile approaches 3. Scrum: - originally for software projects - Small team works on backlogs - Work in sprints with daily meetings 4. XP - Extreme programming - Allows SW developers to respond to changing requirements - Emphasizes teamwork, self organisation and involvement of the user in the team

What are the *warnings* of incremental development?

1. Incremental delivery does not mean dive in and do the most interesting bits and worry about the rest later 2. It is only the detail of later increments that can be left out 3. It is essential to have an outline plan for the whole project right from the beginning (though the plan will get revised) 4. Without a plan the whole direction of the project may be wrong and not feasible.

What are the 7 chapters of the V process?

1. Introduction 2. Literature review 3. Requirements 4. Design 5. Implementation 6. Evaluation 7. Conclusions

Why is Agile development *flexible*?

1. It can be applied to in-house developments, generic external products (eg Office) and bespoke systems for outside clients - Eg Microsoft - iterative approach allows additional functionality to be added. Worth it in these cases as long term gain outweighs minor extra effort - Eg Deloitte - bespoke - client gets to choose if additional functionality is worth it

How to ensure Configuration Management works well?

1. Keep back up copies 2. Use release numbers/date stamps 3. Keep track of who is doing what

What are the disadvantages of incremental delivery?

1. Loss of economies of scale: some costs will be repeated (e.g. design) 2. 'Software Breakage': later increments might change earlier increments

What are the *aspirations* of the stage wise model?

1. Practicality - tries to answer 'what do I do now?" 2. Scalability - useful for small project as well as large 3. Based on accepted techniques

What are the 5 steps of the *Software Development Life Cycle*?

1. Requirements 2. Design 3. Build 4. Test 5. Implement

What are the *6 stages* of the stage wise model?

1. Requirements Analyesis 2. Specification 3. Design 4. Coding 5. Testing 6. Implementation

What are the 7 stages in the V process model?

1. Requirements definition 2. Specification 3. Design 4. Coding 5. Testing 6. Implementation 7. Operation

What are the prototyping techniques?

1. Simplification 2. Reduced database 3. Simplify data handling 4. Use an alternative program 5. Use alternative software to generate output 6. Use an alternative high level language 7. Use prototyping tools - Horizontal or Vertical Prototyping

Explain the different prototyping techniques.

1. Simplification: sacrifice quality and reliability. The prototype is a throw away product, it does not need to be robust. Sufficient for demonstration or user test 2. Reduced database: a program may be greatly reduced if half a dozen records, set up by hand, are used instead of a vast disk based databse. 3. Simplify data handling: the prototype is merely to show the user what will happen when the right and wrong input is used. It need only handle one example of each. 4. Use an alternative program: may exist on a different computer. if there is something similar in a different context this may be a good starting point for a prototype. 5. Use alternative software to generate output: much of the user's feel of the program comes from its output, so a sample of the output can generate useful feedback. Eg: output onto paper, screen, disk or other devices 6. Use an alternative high level language: build a prototype in a language that would be inefficient for the end product 7. Use prototyping tools: help generate the user interface. Tools can generate outline code to handle the interface, the meat of the program can then be added. Can leadto evolutionary delivery

What are the *advantages* of prototyping?

1. Something *tangible* is produced quickly. Keeps everyone happy. 2. The *tangible* nature helps the customers to clarify their ideas and refine their requirements 3. Misunderstandings and errors in the *specification* can be sorted out 4. *Missing* user *services* may be detected. 5. *Improved communication* - easier to look at a model than a document 6. Limited working model may be sufficient to *test the feasibility and usefulness* of the product 7. *Alternatives* can be tested and compared using different try and see prototypes 8. *Early customer involvement* 9. More *reliable* in identifying *real requirements* than any type of detailed study, yet may take no longer to produce 10. Prototype can serve as a *specification* for the development of the full production

What are the advantages of the Evolutionary Delivery model?

1. The customer gets an *early experience* of the system 2. Early correction of errors reduces the cost. 3. There is no need for a detailed investigation of all parts of the system. Only the *parts to be handled first*: early visible progress can be made 4. *Early feedback* enables customer to *participate* 5. Unlike incremental model - does not ned complete detailed design at the start 6. Useful if requirements not clear at the start

What are the *disadvantages* of prototyping?

1. The prototype takes too much time and effort. - Benefits of prototype must be balanced against the resources takes to produce - Many of the advantages of prototyping could be obtained through phased development where the early attempts are not discarded - evolutionary 2. The prototype is confused with the real thing. a) limitations of prototype are taken as a reflection of the final product - bad impression is given b) The customer is pleased with the prototype and wants to use it. - the developer is then pressured to further develop the prototype but is based on a design full of compromises. 3. Focus on user-friendly interface could be at expense of machine efficiency 4. Concept prototype - user may focus on interface rather than concept.

What are the reasons to use a value to cost ratio?

1. The sooner the most useful parts of a product are implemented, the sooner the most useful *feedback* is obtained. 2. Having something relatively useful working early on is a psychological boost to the developer, the customer and the management. 3. Any difficult task that will have little to show for itself will gradually come to the top of the 'do next' list if it is worth doing

When should we use the Evolutionary Delivery model?

1. When the *requirements are unclear*: need to capture those requirements and interact with the user 2. *System is not complex*: means it won't be difficult to evolve a solution over a series of releases

*When* should developers use the incremental model?

1. When the requirements are well understood 2. When there is a complex system that can be broken down 3. Long duration projects 4. When there are cash flow issues - so pay in stages 5. When there is a danger of gold plating

What is a project?

A *temporary* endeavor undertaken to create a *unique* product, service or result

What does the Classical Waterfall Model aim to solve?

A criticism of the earlier stage wise model: does not recognise need for revision The CWM is a compromise

What is the relationship between functionality and cost?

A positive correlation

What is a sprint?

A sprint is a basic *timeboxed development unit* - an iteration - lasts ~1 week to ~1 month - plan what to do, do it, review it - each sprint produces a deliverable - a product increment

What is Agile project management?

A style of project management that focuses on early delivery of business value, continuous improvement of the project's product and processes, scope flexibility, team input and delivering well-tested products that reflect customer needs

Why was agile development implemented?

Because during the 1990's: - OOP replaced procedural programming - dot com revolution - Speed to market important - Constantly evolving market/environment

Why clients like Waterfall?

Because of the idea of getting a quote, contract, and expecting delivery in x months. Developer goes away and comes with solution But it never seems to work like that

Does the incremental model really work?

IBM say their LAMPS project, a 4 year, 200 person-year project was delivered in 45 incremental deliveries, every one of these deliveries was on time and under budget

What are scrum stories (functionality)? INVEST

Identify stories that are: - I: independent - N: negotiable - V: valuable - E: estimable - S: small - T: testable

Define the *Software Development Model*

It is how the overall software development process is to be performed. The order in which activities will be tackled. What happens in the stages - not the stages themselves.

Stage Wise Model... what it represents

It represents a unidirectional development - once a stage has been completed the results of that stage become a fixed baseline from which the following stages develop (no revision)

? What are the methods / techniques for the design stage?

JSD, OOD, SSADM

What is the difference between a *model* and a *method*?

Models: define the overall process Methods: can define other things too e.g. (team size and structure, user involvement, techniques to use, documentation to produce)

Why are there flaws in the engineering model?

Natural Disasters occur: - Key personnel leave the company - Government legislation changes - Management changes - Operating systems and target hardware change/become outdated There is not usually any contingency made for anything of this sort

Difference between projects & operations?

Projects are unique, operations are repetitive

What is Prototyping?

Prototyping is the process of *transforming an idea into a model* for purposes of: - developing - testing - communicating that idea

? What are the methods / techniques for the requirements stage?

Soft systems, DFDs, Rich Pictures, Hard Systems Structure charts

How does Evolutionary Delivery model differ from build and fix model?

There is an initial specification and *planned sequence* of deliverables, and initial requirements capture.

What is a reasonable *cost* for a prototype? What does it depend on

This will depend on the effectiveness in: - Demonstrating how the end product works - Generating useful feedback The high cost of the maintenance phase of the software life cycle could justify *up to a third of the development cost* being used for a prototype - but it would have to be very good at this price

What is *Software Project Management*?

Tools, techniques, methods, processes used to manage *large* software projects

What characterises projects?

Unique, mixed elements, life cycle, limited resources, goal oriented

What are the flaws in the engineering model?

Users don't know what they want at the start of production, so when they are locked out during the design and build stage and see the final product, they might not get what they want. Hence, the cost of error is high as well as time spent

What is the *product-oriented process*?

geared to the development and implementation of the *software* - using the project's resources

What is the *project management processes*?

managing and controlling the project (defining work, scheduling, motivating etc)


Conjuntos de estudio relacionados

Chapter 5, Chapter 11, Chapter 12, Chapter 14, Chapter 15, Chapter 20, Chapter 21, Chapter 24

View Set

English II Honors Final - Poetry

View Set

Marketing Management 3404 Study Guide

View Set

Chapter 6 question from Cambridge

View Set