Software Development Process Models (SCRUM Methodology)
introduction to software engineering theory
1. Question 2
(a)
Scrum is a framework within which you can employ various processes and techniques, within
which complex products can be developed. Scrum involves principles such as Time-boxes, time
boxing refers to a technique for organizing software delivery and it can be used for planning or
scheduling. Cross-functional team, that means teams operate in a self-managing mode, which is
an important principle of Scrum because it encourages team members to take responsibility of
their work. Open communication must be applied to all levels without fear of blame or
retribution, because it is the right thing to do, not because it is required by management or
someone else on the receiving end. Priorities set by Product Owner, this involves Periodic
prioritization of needs is a constant theme in Scrum which allows Scrum to be able to react
quickly to changes in stakeholder needs or events on the ground. Demonstrable results
Responsive to change.
Scrum also involves roles such as Scrum Master which serves as the scrum expert by
facilitating and coaching. Scrum team where the team is committed to deliver a sprint goal. The
Product Owner who is concerned with delivering business outcomes based on stakeholder
needs. Lastly, the Stakeholders, who are responsible for providing product feedback as well as
guidance.
(b) Scrum should be used when:
you want to benefit from fast feedback and burning visibility of objective data
you don't completely understand the value and definition of what you are building
your payoff/downside curves could vary widely
have a team passionate about it or a coach who will help them
have complicated project without all the experts you need or a complex project
2. 3
Incremental development and reuse –oriented software engineering will be the most suitable
software process models to use. This is because we do not know the requirements for component
B, so using incremental development will be advantageous since, customers do not have to wait
until the entire system is delivered before they gain value from it .Also, clients can use the
existing components A and C as prototypes and gain experience that might inform them about
the requirements they will need for component B. Furthermore, there will be a lower risk of
overall project failure.
Reuse–oriented is also beneficial in projects where requirements of some components are
unknown since, we are using existing components A&C and we know their requirements so it
will increase the dependability due to that clients are sure and trust the functionality of the
existing components and their requirements. It also provides reduced process risk as the cost of
the existing software are already known. Due to accelerated development this process model is
concerned with minimising the development period of the software so that it can be delivered as
early as possible. Reusing software can speed up system production because both development
and validation time may be reduced.