Software Development Lifecycle Flashcards
What is the purpose of the SDLC?
To create stable software in the shortest time possible.
Define the concept of SDLC
The modulating of the software development process into development phases that can be tested in a controlled way.
What are the 2 overarching purposes of thew SDLC?
Quality assurance
Development management
What are the 5 stages of the SDLC?
Requirements/Analysis, Design, Implementation, Testing, Evolution.
What questions does the requirements / analysis stage solve?
What is the problem? Who is the program for? How will the program solve the problem?
What questions does the design stage solve?
What are the tech requirements? How will the solution be developed? Which tech stack will be used? What tests need to be done?
Define the implementation stage…
The physical development of the solution as per the requirement and design stage.
Define the testing stage…
Conduct testing that was defined in the testing stage.
Define the evolution stage?
What features need to be added or removed for the next iteration of the product?
What are the 5 main Software Development methodologies?
Agile, Scrum, Rapid Prototype Testing, Waterfall, Prototyping.
Define Agile development…
An iterative approach in which cross-functional teams implement incremental changes to the solution. It’s sprint based, where each sprint releases an updated solution.
Is testing emphasised in agile? If so, why?
Yes, testing is done regularly and often to ensure bugs are caught early.
What are the pros and cons of agile?
Pros:
- Early and consistent bug catching.
- Small incremental changes prevent errors causing catastrophic side effects.
- Cross functional teams ensure diverse and multi-perspective input at every stage, leading to a well rounded iteration.
Cons:
- Slower than other models
- Cross-functional teams can lead to disagreements due to lack of understanding of different disciplines.
Define scrum…
An iterative approach conducted in sprints. Each sprint is 2 to 4 weeks and has the aim of implementing an incremental change on the solution. After each iteration, customer feedback is obtained and used to plan the next sprint.
What are the components of a sprint?
Sprint planning, daily scrum meetings, sprint review to ensure the software increment has been developed as per the specification.
Pros and cons of scrum?
Pros:
- Customer feedback orientated
- Sprints are fast
- Daily scrum meetings ensure good communication
Cons:
- Scrum masters can over reach.
- Heavily dependant on communication, which can sometimes be tricky. Especially with remote working.
Define Waterfall…
Used when the project is short and unambiguous. Consists of specialised teams working at each stage of the cycle. At each stage, the output from the stage has to be signed off, and is then used as input into the next stage.
Pros and cons of waterfall?
Pros:
- Simple model
- Specialists at each stage
- Cleary defined goals at stages
- Sign offs improve quality assurance
Cons:
- Specialists lack knowledge of other areas, therefore, the output of their stage may be incompatible as the input of the next stage.
- Not good for complex projects
- No rooms for on-the-fly modification to the product.
- Bug-carry over - If issues aren’t addressed, they carry over as input into the next stage.
Define RAD
Focussed on creating a MVP as quickly as possible within a set time (which never changes). If development is taking too long, features are always reduced rather than time extended. The goal is to get an MVP out quickly for rapid feedback to increment the product with.
Pros and cons of RAD?
Pros:
- Quick
- User feedback driven
Cons:
- High pressure to release solution
- Pressure can lead to sub par MVP
In RAD, the design and implementation processes are… …… What does this mean?
Interleaved
This means that the occur alternatively.
Define Prototyping
Not a framework, but is embedded in the design process. This enables us to get user feedback of a static version of the product. It is mainly focussed on the UX of the product.
What does prototyping help with?
- User feedback on design
- User feedback on which features to implement.
When should waterfall methodology be used?
When the project is small and unambiguous.