Agile Software Development - Scrum

We employ scrum to the development of all our web site projects (static website as well as dynamic web sites) Scrum is an iterative, incremental framework for project management and software development. Simply put, Scrum is an agile framework for completing complex projects. As opposed to a full process or methodology like the waterfall software process model, it is a framework. So instead of providing complete, detailed descriptions of how everything is to be done on the project, much is left up to the team. This is done because the team will know best how to solve its problem.

How does Scrum work ?

The key features of the Scrum framework are as follows:

- The desired outcomes/features of the project are organized into a dynamic list called a product backlog.

      • Items may be deleted or added at any time during the project.
      • Items are kept priorityorder.
      • Lower priority items are intentionally course-­‐grained.

- Teams work in cycles called sprints, iterations that typically range from two to four weeks in duration.
- At the beginning of each sprint, teams perform sprint planning, where they choose items to work on during the sprint, called a sprint backlog .
o A sprint backlog is a negotiated set of items from the product backlog that a team commits to complete during the timebox of a sprint.
o Items in the sprint backlog are broken into detailed tasks for the team members to complete.
o The team works collaboratively to complete the items in the sprint backlog, meeting each day (daily
scrum) to share struggles and progress and update the sprint backlog and burndown chart accordingly.
- At the end of each sprint, the team delivers a potentially shippable increment of work, presented during a
sprint review.
o Potentially shippable means that the increment/deliverable could be released to a customer.
o The product owner makes the decision about when to actually release any functionality or deliverable.
o The team takes the time at the end of every sprint to identify ways to improve both the end product and the
process in future sprints. This ceremony is known as the sprint retrospective.
- The cycle repeats until enough items in the product backlog have been completed, the budget is depleted, or a
deadline arrives.

Which of these milestones marks the end of the work is entirely specific to the project. No matter which impetus stops work, Scrum ensures that the most valuable work has been completed when the project ends. What are the advantages and disadvantages of Scrum?

Scrum Advantages

      • Agile scrum helps the company in saving time and money.
      • Due to short sprints and constant feedback, it becomes easier to cope with the changes.
      • Daily meetings make it possible to measure individual productivity. This leads to the improvement in the productivity of each of the team members.
      • Issues are identified well in advance through the daily meetings and hence can be resolved in speedily
      • It is easier to deliver a quality product in a scheduled time.
      • The overhead cost in terms of process and management is minimal thus leading to a quicker, cheaper result.

Scrum Disadvantages

      • If a task is not well defined, estimating project costs and time will not be accurate. In such a case, the task can be spread over several sprints.
      • If the team members are not committed, the project will either never complete or fail.
      • It is good for small, fast moving projects as it works well only with small team.
      • This methodology needs experienced team members only. If the team consists of people who are novices, the project cannot be completed in time.
      • Scrum works well when the Scrum Master trusts the team they are managing. If they practice too strict control over the team members, it can be extremely frustrating for them, leading to demoralization and the failure of the project.
      • If any of the team members leave during a development it can have a huge inverse effect on the project evelopment.

      What real life projects are actually using Scrum ?
      Scrum has been used to produce financial products, Internet products, and medical products by ADM and other companies.

More on Scrum

Agile software development is based on the concept of framework in the field of software engineering that helps catalyze the process of system development life cycle. It allows a team of engineers to work harmoniously on the specific features of the software that can be accomplished in a short time frame.
SCRUM involves the implementation of agile software development within a time constraint period where the team is supposed to synergies their skills and expertise to fulfill the requirements of the project within a period of 30 days or more.  One of the recognized advantages of SCRUM is that it avoids the team players from digressing from the development of the project. It also helps manage resources and time in the most efficient way, hence optimizing performance and product development. SCRUM projects consist of imperative features that are not considered complete until they have undergone the iterative process of development lifecycle, that is, code analysis, code design, code implementation, software and feature testing and documentation of the feature.
A team working on a SCRUM project comprises of analyst, designers/programmers, software testers and technical documentation specialist. The role of the team is integral to the project as it not only requires team skills but also requires individual team members to be self starters and capable of managing themselves. Without a single team member’s adequate contribution it is impossible to propel the project to its stage of completion. Later in this page we will see how scrum can applied for the design and development of static and dynamic web sites.

Some of the eminent advantages of SCRUM include improved time efficiency and reduced costs. SRCUM implementation allows one to pace out the coding and testing of the project, making it easy for the team to fix errors. Good communication is the key to a successful SCRUM project and hence the exchange of constant feedback among the team members facilitates the completion of the project while making it easier to dynamically cope up with the changes of the project. Essentially SCRUM allows the delivery of the product in a timely manner. Other than that, agile SCRUM is very compatible with other technologies and programming languages. These are the main resons we focus on scrum in the development effort static web sites as well as the development of complex application and ecommerce applications.

On the contrary, it can also cause loop holes in the project if there is no definite end date for the delivery of the project. SCRUM can also hinder the development of the project especially if the tasks are not well defined or are inaccurate causing the project cost to go high. The implementation of SCRUM is beneficial for small scale projects and can adversely affect projects that need to be implemented on a large scale. Moreover a single team member leaving the team can cause the whole project as well as the team to suffer. Last but not the least, quantification and implementation of the project quality management is hard. We build our methodology around your dates and needs and ensure that you web site delivered on time, within budget and with a acceptable quality levels.

 

A report on Scrum:

Section 1: Abstract:
The focus of agile software development has always been on methods and practices. Agile software development stresses on rapid iterations, small and frequent releases, and evolving requirements facilitated by direct user involvement in the development process. Scrum is an iterative, incremental methodology for project management often used to implement agile software development. This report describes how Scrum is used for management of software development projects and software maintenance teams to improve their processes. The focus of this report is on describing the case studies about introducing, implementing, and using Scrum in different software development companies across the globe on differents types of project (like building a customized web application). The findings indicate that sudden implementation of Scrum is a difficult process because it involves large changes in organizational culture and work practices that may be difficult to adapt to but certainly proves to be an optimal way to introduce an agile method into an organization.


Section 2: Introduction:
Scrum is a team-based process/approach for managing and controlling development work which results in incremental development of the product and thus maximizes productivity. Scrum provides a framework to visualize scope, amalgamate mundane and repetitive development tasks, and enforce process. It can be applied equally well instead of traditional development processes to support all the development activities within an enterprise to increase speed and flexibility. Scrum is an empirical process based framework in which complex products can be developed as it reduces complexity and time to build software with gamut of requirement variability. It is transparent and adaptive planning process.
The main roles in Scrum are:

    • The "Scrum Master" (also called as project manager)
    • The "Product Owner", who represents the stakeholders and the business
    • The "Team", a cross-functional group who are involved in developmental work (analysis, coding, testing)

Section 3: Example 1:
One of the companies among several which follow scrum methodology is Motorola:
The section below describes how Motorola adopts scrum process during software development cycle.

    • Every day at a fixed time meeting is held at the fixed place.
    • Project Manager/Lead ( Scrum Master) questions team members about what they did previous day, and what they are planned to do and if any issues observed, this extends to 30 minutes because of  team size constraints.
    • Everyday Scrum Master sends the report (excel sheet-graph usually called as burn down chart) which includes the daily progress, issues.
    • Beginning of Sprint, meeting is held by Scrum master to discuss about product backlog and continues to meet once in a week (although Sprint plan duration is 2 – 3 weeks). Here they discuss about prioritized work, resource allocation, time to complete, issues (Sprint Backlog). The team then proceeds to work through the Sprint Backlog tasks on a daily basis, synchronizing their activity in a daily Scrum Meeting.
    • At the end of every sprint cycle, review is conducted and completed product is released.
    • Before next Sprint Plan, discussion about the performance/improvements based on previous sprint is discussed ( Sprint Retrospective )
    • Entire cycle continues.

Section 3.1: Project:Multimedia Messaging System application (Features such as postcard, My Favorites, OTA)


Section 4: Example 2:
Another example of a company which follows scrum methodology is IBM:
Software group of IBM comprises of approximately 120 members per software product, with team members spread across different geographical locations, overlapping as well as non overlapping timelines, having different skill sets required for the project. In order to achieve effective communication and efficiency between such cross site teams (teams working at different locations), IBM uses Distributed Scrums:

    • The project involved different skill sets like software programmers, testing engineers, tool developers, support engineers, software project managers and release engineers etc.
    Each site had a local scrum with local scrum masters, the local teams coordinated /communicated with their local scrum masters. Each scrum team had its own sprint backlog which is taken from the main Product backlog. The local scrum master was responsible for making the local team work efficiently, monitor daily tasks of the Sprint backlog.

  • The local teams gave updates to their local scrum master, in daily or weekly local scrum meetings. These distributed scrum teams, had one representative (generally local scrum master) who will be part of the Integrated Scrum Team.
  • The integrated scrum team consisting of the local representatives/scrum masters from different sites and the Product Manager who meet daily/weekly to communicate their individual sprint backlog status ,issues ,progress, feedback and any new requirements from the client. The tasks were then assigned to the Scrum masters for next week.
  • Product owner needs to coordinate between representatives from multiple sites to work towards single goal.
  • Before the release of every milestone/sprint backlog, reviews were also carried out among the engineers in the same site or shared between engineers from different sites(cross-functionality).

Section 4.1: Project:  IBM Web Sphere- Portal V6.0 project
Conclusion:
As a team we have analyzed and found that majority of the companies implement Scrum on a large scale but profound evaluation and more reflective view of Scrum is needed before implementing Scrum because it involves large changes in organizational culture and work practices that may be difficult to adapt to and thus this change might be formidable. Finally, we as a team do believe that Scrum implementation is an optimal way to introduce an agile method into an organization to adapt to the rapid changing requirements. It gives the opportunity to self-organized teams to:

    • Control and manage them.
    • Practice leadership-collaboration
    • Trust the individuals to exercise the right decisions

    We believe that Scrum places emphasis on people and individual competence and provides an edge to the organization by the increasing productivity and efficiency as the team members gain a more structured work style; in addition, working for less time and having better control of the work they carry out in a Sprint. In short, we believe that Scrum methodology is one of the better agile methodologies for larger projects, geographical distribution, and legacy systems.