Scrum Methodology

Scrum is unique because it introduced the idea of “empirical process control.” That is, Scrum uses the real-world progress of a project — not a best guess or uninformed forecast — to plan and schedule releases. In Scrum, projects are divided into succinct work cadences, known as sprints, which are typically one week, two weeks, or three weeks in duration. At the end of each sprint, stakeholders and team members meet to assess the progress of a project and plan its next steps. This allows a project’s direction to be adjusted or reoriented based on completed work, not speculation or predictions.

Philosophically, this emphasis on an ongoing assessment of completed work is largely responsible for its popularity with managers and developers alike. But what allows the Scrum methodology to really work is a set of roles, responsibilities, and meetings that never change. If Scrum’s capacity for adaption and flexibility makes it an appealing option, the stability of its practices give teams something to lean on when development gets chaotic.

The Roles of Scrum

Scrum has three fundamental roles: Product Owner, Scrum Master, and team member.

Product Owner:

In Scrum, the Product Owner is responsible for communicating the vision of the product to the development team. He or she must also represent the customer’s interests through requirements and prioritization. Because the Product Owner has the most authority of the three roles, it’s also the role with the most responsibility. In other words, the Product Owner is the single individual who must face the music when a project goes awry.

The tension between authority and responsibility means that it’s hard for Product Owners to strike the right balance of involvement. Because Scrum values self-organization among teams, a Product Owner must fight the urge to micro-manage. At the same time, Product Owners must be available to answer questions from the team.

Scrum Master :

The Scrum Master acts as a facilitator for the Product Owner and the team. The Scrum Master does not manage the team. Instead, he or she works to remove any impediments that are obstructing the team from achieving its sprint goals. In short, this role helps the team remain creative and productive, while making sure its successes are visible to the Product Owner. The Scrum Master also works to advise the Product Owner about how to maximize ROI for the team.

Team Member:

In the Scrum methodology, the team is responsible for completing work. Ideally, teams consist of seven cross-functional members, plus or minus two individuals. For software projects, a typical team includes a mix of software engineers, architects, programmers, analysts, QA experts, testers, and UI designers. Each sprint, the team is responsible for determining how it will accomplish the work to be completed. This grants teams a great deal of autonomy, but, similar to the Product Owner’s situation, that freedom is accompanied by a responsibility to meet the goals of the sprint.

SDLC Model

SDLC Model Basic  Information :

The software industry includes many different processes, for example, analysis, development, maintenance and publication of software. This industry also includes software services, such as training, documentation, and consulting.

Our focus here about software development life cycle (SDLC). So, due to that different types of projects have different requirements. Therefore, it may be required to choose the SDLC phases according to the specific needs of the project. These different requirements and needs give us various software development approaches to choose from during software implementation.

Types of Software developing life cycles (SDLC)

· Waterfall Model

· V-Shaped Model

· Evolutionary Prototyping Model

· Spiral Method (SDM)

· Iterative and Incremental Method

· Extreme programming (Agile development)

Waterfall Model

wATERFALL

Description

The waterfall Model is a linear sequential flow. In which progress is seen as flowing steadily downwards (like a waterfall) through the phases of software implementation. This means that any phase in the development process begins only if the previous phase is complete. The waterfall approach does not define the process to go back to the previous phase to handle changes in requirement. The waterfall approach is the earliest approach that was used for software development.

Strengths 

  • Easy to understand, easy-to-use.
  • Provides structure to inexperienced staff
  • Milestones are better understood
  • Sets requirements stability
  • Good for management control (plan, staff, track)
  • Works well when quality is more important than cost or schedule. 

When to Use? 

  • Requirements are well-known
  • Product definition is stable
  • Technology is understood
  • New version of an existing product
  • Porting an existing product to a new platform

Advantages and Disadvantages 

Advantages Disadvantages
· Easy to explain to the user· Structures approach.· Stages and activities are well defined· Helps to plan and schedule the project

· Verification at each stage ensures early detection of errors / misunderstanding

· Each phase has specific deliverables

· Assumes that the requirements of a system can be frozen· Very difficult to go back to any stage after it finished.· Little flexibility and adjusting scope is difficult and expensive.· Costly and required more time, in addition to detailed plan

V-Shaped Model

Vshaed

Description

It is an extension for waterfall model, Instead of moving down in a linear way, the process steps are bent upwards after the coding phase, to form the typical V shape. The major difference between v-shaped model and waterfall model is the early test planning in v-shaped model.

Strengths

 Emphasize planning for verification and validation of the product in early stages of product development

  • Each deliverable must be testable
  • Project management can track projects by milestones
  • Easy to use

When to Use? 

  • Excellent choice for systems requiring high reliability
  • All requirements are known upfront
  • When it can be modified to handle changing environments beyond analysis phase.
  • Solution and technology are known.

Advantages and Disadvantages 

Advantages Disadvantages
· Simple and easy to use.· Each phase has specific deliverables.· Higher chance of success over the waterfall model due to the development of test plans early on during the life cycle.· Works well for where requirements are easily understood. · Very inflexible, like the waterfall model.· Little flexibility and adjusting scope is difficult and expensive.· Software is developed during the implementation phase, so no early prototypes of the software are produced.· Model doesn’t provide a clear path for problems found during testing phases.

· Costly and required more time, in addition to detailed plan

Evolutionary Prototyping Model

Evalutionary

 Description

It refers to the activity of creating prototypes of software applications, for example, incomplete versions of the software program being developed. It is an activity that can occur in software development. It used to visualize some component of the software to limit the gap of misunderstanding the customer requirements by the development team. This also will reduce the iterations may occur in waterfall approach and hard to be implemented due to inflexibility of the waterfall approach. So, when the final prototype is developed, the requirement is considered to be frozen.

It has some types, such as:

· Throwaway prototyping: Prototypes that are eventually discarded rather than becoming a part of the finally delivered software

· Evolutionary prototyping: prototypes that evolve into the final system through iterative incorporation of user feedback.

· Incremental prototyping: The final product is built as separate prototypes. At the end the separate prototypes are merged in an overall design.

· Extreme prototyping: used at web applications mainly. Basically, it breaks down web development into three phases, each one based on the preceding one. The first phase is a static prototype that consists mainly of HTML pages. In the second phase, the screens are programmed and fully functional using a simulated services layer. In the third phase the services are implemented

The usage

· This process can be used with any software developing life cycle model. While this shall be focused with systems needs more user interactions. So, the system do not have user interactions, such as, system does some calculations shall not have prototypes.

Advantages and Disadvantages 

Advantages Disadvantages
· Reduced time and costs, but this can be disadvantage if the developer lose time in developing the prototypes· Improved and increased user involvement · Insufficient analysis· User confusion of prototype and finished system· Developer misunderstanding of user objectives· Excessive development time of the prototype

· Expense of implementing prototyping

 

Spiral Method (SDM)

Spiral

Description

It is combining elements of both design and prototyping-in-stages, in an effort to combine advantages of top-down and bottom-up concepts. This model of development combines the features of the prototyping model and the waterfall model. The spiral model is favored for large, expensive, and complicated projects. This model uses many of the same phases as the waterfall model, in essentially the same order, separated by planning, risk assessment, and the building of prototypes and simulations.

Strengths

  • Provides early indication of insurmountable risks, without much cost.
  • Users see the system early because of rapid prototyping tools
  • Critical high-risk functions are developed first
  • The design does not have to be perfect
  • Users can be closely tied to all lifecycle steps
  • Early and frequent feedback from users
  • Cumulative costs assessed frequently

When to Use?

  • When creation of a prototype is appropriate
  • When costs and risk evaluation is important
  • For medium to high-risk projects
  • Long-term project commitment unwise because of potential changes to economic priorities
  • Users are unsure of their needs
  • Requirements are complex
  • New product line
  • Significant changes are expected (research and exploration)

Advantages and Disadvantages

Advantages Disadvantages
· Estimates (i.e. budget, schedule, etc.) become more realistic as work progresses, because important issues are discovered earlier.· Early involvement of developers· Manages risks and develops system into phases · High cost and time to reach the final product.· Needs special skills to evaluate the risks and assumptions· Highly customized limiting re-usability

 Iterative and Incremental Method

 Iterative or Incremental

Description

It is developed to overcome the weaknesses of the waterfall model. It starts with an initial planning and ends with deployment with the cyclic interactions in between. The basic idea behind this method is to develop a system through repeated cycles (iterative) and in smaller portions at a time (incremental), allowing software developers to take advantage of what was learned during development of earlier parts or versions of the system.

The usage

It is used in shrink-wrap application and large system which built in small phases or segments. Also can be used in system has separated components, for example, ERP system. Which we can start with budget module as first iteration and then we can start with inventory module and so forth.

Advantages and Disadvantages

Advantages Disadvantages
· Produces business value early in the development life cycle· Better use of scarce resources through proper increment definition· Can accommodate some change requests between increments· More focused on customer value than the linear approaches

· Problems can be detected earlier

· Requires heavy documentation· Follows a defined set of processes· Defines increments based on function and feature dependencies· Requires more customer involvement than the linear approaches

· Partitioning the functions and features might be problematic

· Integration between iteration can be an issue if this is not considered during the development.

 

Extreme programming (Agile development)

 Agile

 Description

It is based on iterative and incremental development, where requirements and solutions evolve through collaboration between cross-functional teams.

The usage

It can be used with any type of the project, but it needs more involvement from customer and to be interactive. Also, it can be used when the customer needs to have some functional requirement ready in less than three weeks.

Advantages and Disadvantages

Advantages Disadvantages
· Decrease the time required to avail some system features.· Face to face communication and continuous inputs from customer representative leaves no space for guesswork.· The end result is the high quality software in least possible time duration and satisfied customer · Scalability· Skill of the software developers· Ability of customer to express user needs· Documentation is done at later stages

· Reduce the usability of components.· Needs special skills for the team.