Project management Flashcards
Last part of the software engineering module
Why do software engineering projects fail?
Poor planning
Unclear requirements
Scope creep
Insufficient communication with end client
What is agile software development?
Flexible and iterative process to creating software
What are the core values of agile software development
Individuals and interactions over process and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
Why use agile software development
Increase team productivity
Visability
Improve adaptability of code
Business and IT alignment
Collaboration with client
Why might agile not make projects faster and cheaper?
Too much time on prototyping and not working on actual software
Why might agile make projects faster and cheaper?
Working software sooner by iteration
Give three examples of agile software development
Scrum, Kanban and XP
Explain Scrum
Uses sprint cycles where there is a plan for what each sprint will implement
Scrum master defines roles
Changes made at the end of each sprint
Explain Kanban
Kanban board is a list of features to implement
Roles are fluid, project manager is optional
Changes made at any time
Explain XP
Pick a user story, plan, develop, test and release software
Roles are fluid and project manager is optional
Changes made at any time
What is traditional software development?
Rigid and inflexible approach to developing software. Uses top-down heavy approach to development (all planning, developing then testing)
Give two examples of traditional software engineering techniques
V-model and waterfall
What do the software quality assurance team do?
Defining quality
Planning for quality
Checking for quality
Explain how QA team defines quality
Define product and process standards
Give some examples of product standards
Documentation standards
Coding conventions
Class structures