Thursday, February 25, 2016

Why to Choose Scrum for Web and Mobile Development

A rugby scrum, which is not the same thing as scrum development.

It's never surprised me that scrum has a bit of a controversial reputation. While some praise scrum for its effective and straightforward approach to software development, there are professional software developers who have staked their reputations on arguing that approaches such as scrum are at best pointless, and at worst detrimental to an effective software development effort.

Scrum may well have encouraged such heated debate, not because of anything intrinsic to scrum itself, but rather due to misconceptions and misapplications of the terminology and the technology that have grown up around scrum. And if your team is working on web and mobile development projects, scrum may be the best possible solution out there for managing your projects.

So What Is Scrum?

[author_more]

Scrum is one of a family of approaches to organizing software projects that fit together under the umbrella of agile. Other agile techniques include kanban and extreme programming. All of these approaches share a few common principles about how people should work together in software development, and how to optimize that process, such as:

  • Delighting the customer
  • Delivering working software frequently
  • Business people and developers working together
  • Measuring real results based on work that is completed
  • Allowing teams to self-organize
  • Reflecting regularly on what's working and what isn't

In particular, scrum is optimized for teams working on projects that can be broken down into complete slices of functionality able to be delivered within a fixed and regular time frame of usually one or two sustainable work weeks, known as sprints in scrum. Scrum uses the term stories to describe those slices of functionality, and strives to improve the team's ability to estimate how much effort would go into completing a story.

Unlike traditional software development approaches, often lumped together under the label waterfall, scrum doesn't involve long and detailed requirements documents full of specifications crafted by product managers that all need to be spelled out before the team can get started working.

Scrum is flexible enough to allow a team to get started based on just enough stories to keep them busy for a couple of weeks. In that time, if there's new user feedback, the market changes, new information comes up from outside or inside the company, or the technology underlying the product shifts, new stories can be introduced and worked on for the next couple of weeks.

Scrum also favors regular face-to-face communication over detailed specifications. This is usually helped along by having every member of the team stand up in a group daily and report on what they've done the previous day, what they're planning to do the current day, and whether they have any blockers. Scrum also recommends other regular face-to-face meetings, called rituals, for planning, demonstrating, and doing a retrospective every sprint.

While the prospect of a daily meeting may sound off-putting to a lot of developers, it's important to remember that these are all finely tuned scrum rituals managed by a scrum master, with fixed times and clear agendas. For example, the daily standup should never take longer than 15 minutes.

Roles such as scrum master and product owner are also defined within scrum. And you may have noticed that the vocabulary of scrum sounds a little funky for a professional technical environment. That's kind of the point. Scrum defines roles, rituals, and artifacts in such a way that you can't confuse them easily with other approaches.

Continue reading %Why to Choose Scrum for Web and Mobile Development%


by M. David Green via SitePoint

No comments:

Post a Comment