Software DD (Development Methodologies) Flashcards
Definitions, methods, theory etc.
Traditional Method (Interaction with client):
Client is heavily involved at the start and end points of development.
They will sign off the specification.
Specification is fixed for the remainder of the project
At the end of development they will evaluate that it is fit for purpose and meets the specification.
This feedback can then be used redesign any aspects not met (very time heavy).
(My Summary: Client involved at the start of the project, Developers make the program and Client evaluates at the end and if any requirements not met, then Developers have to go through program again. Due to not interacting with the clients throughout, the process of having to fix everything at the end takes a lot longer than if the clients interacted throughout the development of the program.)
Bold text from RGC Aberdeen website
Agile Method (Interaction with client):
Client is involved throughout the entire process.
They will give feedback on each prototype as it is produced to meet requirements at that stage.
Feedback is acted upon at that stage to improve the software
Goals can be changed throughout the project.
(My Summary: Developers are always in touch with the client which means that if something in the programme doesn’t fit the client’s requirements it can be changed early on instead of after the entire programme is made, this saves time. Clients give feedback after each prototype. Client can change their mind at any time and developers will act upon it.)
Bold text from RGC Aberdeen website
Traditional Method (Teamwork):
Teams of analysts, programmers, testers and documenters work independently on each phase of development.
Teams mainly work in isolation with some communication required between each phase.
(My Summary: Members of teams work on different phases of development independently, Teams mainly work separately but communication still occurs)
Bold text from RGC Aberdeen website
Agile Method (Teamwork):
Teams of developers communicate and collaborate, rather than teams operating in isolation.
During a project, regular fast, face-to-face communication between individuals with different skills is an important factor to allow accurate and quick progression.
(My Summary: Colaboration and Communication between teams is maximised to maximise progression through development.)
Bold text from RGC Aberdeen website
Traditional Method (Documentation):
A detailed project specification is created at the beginning of a project.
Significant time is spent during the project on design, program commentary and test plans.
(My Summary: Detailed project specification made at the beginning of the project. Lots of time spent on design, commentary and test plans throughout development.)
Bold text from RGC Aberdeen website
Agile Method (Documentation):
While modelling solutions remains important, creating large documents that are never updated or referred to again upon completion of the project are not.
Agile focuses on reducing(not removing!) documentation.
It spends time on small cycles of coding, testing and adapting to change.
Any documentation produced (for example internal commentary) should focus purely on progressing the project.
(My Summary: Unimportant documents are avoided, Reduced documentation, Documentation focused on progression not formalities)
Bold text from RGC Aberdeen website
Traditional Method (Measurement of progress)
Follows a strict plan, with progress measured against timescales set at the beginning of the project.
(My summary: Deadlines)
Bold text from RGC Aberdeen website
Agile Method (Measurement of progress)
Breaks a project down into a series of short development goals (often called “sprints”).
This involves cross-functional teams working on: planning, analysis, design, coding, unit testing, and acceptance testing.
Progress is measured by the time it takes to produce prototypes or working components of the software.
Agile focuses on delivering software as quickly as possible.
(My summary: Maximised speed)
Bold text from RGC Aberdeen website
Traditional Method (Predictive)
A predictive methodology, focusing on analysing and planning the future in detail and catering for known risks.
Predictive methods rely on effective early phase analysis and if this goes very wrong, the project may have difficulty changing direction.
Predictive teams often institute a change control board to ensure they consider only the most valuable changes.
(My Summary: Development follows a strict plan which depends on Analysis of the problem at the start. Failure in planning steps can lead to struggles in development. Very strict and not versatile method of development.)
Bold text from RGC Aberdeen website
Agile Method (Adaptive)
An adaptive methodology, focusing on adapting quickly to changing realities. When the needs of a project change, an adaptive team changes as well.
An adaptive team has difficulty describing exactly what they will do next week but could report on which features they plan for next month.
The further away a date is, the vaguer an adaptive method is about what will happen on that date.
(My Summary: Less effort spent planning ahead. Problems are reacted to and countered in the moment. Any changes that need to be made during development are accounted to when the problem occurs instead of planning for a problem. Versatile method.)
Bold text from RGC Aberdeen website
Traditional Method (Testing)
Testing is carried out when the implementation phase of the project is complete.
There may also be component/unit as well as integration testing performed.
(My Summary: Testing performed at the end of development.)
Bold text from RGC Aberdeen website
Agile Method (Testing)
There is no recognised testing phase, as testing is carried out in conjunction with programming.
(My Summary: No specific testing phase, testing occurs throughout development.)
Bold text from RGC Aberdeen website