Scrum might be a new words to some, but understand scrum can go a long way in helping you understand how to optimize your software project.
Applying Scrum in Outsourcing Projects
Have you ever seen a rugby scrum? To those unfamiliar with the game, it looks like – well, a scrum of sweaty characters packed tight in a group, wearing matching shirts and trousers for no apparent reason. However, if you know what you’re looking at, you can see two teams trying to the best of their abilities to provide a good product – the excitement and furor that is rugby – to their customers – the audience. The goal of Scrum in software development is exactly the same, and effective team play is likewise needed. Here at Orient Software, though, Scrum is likely to involve more coffee, an air conditioning, and just a little less physical contact.
Roots of Scrum
In its infancy software development borrowed working methods from existing models, mainly in the fields of manufacturing and construction. These were firmly rooted in linearly progressing sequences; the next one starting only when the previous one was finished, leaving no room for error. This waterfall approach resulted in carefully designed, high standard and well-documented hardware products. However, as software development is usually prone to more uncertainty and bigger risks, the waterfall model had unwanted side-effects. The end products would appear on the shelves of stores (this is the eighties, remember) quickly enough, but they would often be riddled with bugs, since going back to fix them would have cost too much time and money –- once the software was out, it was impossible to correct any mistakes left in the code.
Today, many companies organize their development work very differently. The customers are different, too. Gone are the days when you would just let a team of programmers know what you want and then wait for them to tell you once the surprise is ready. In our fast-moving world, the market conditions and the customers’ requirements for software may change in a matter of weeks. Often, we really get to focus on specific needs and features only when we have an actual first version in our hands. In order to ideally manage these challenges, we use Scrum. It is an iterative, Agile framework for building products and delivering simple, functional and testable results in short periods of time.
Scrum team roles
The Scrum team consists of three parts: the product owner, the Scrum master and the development team. The product owner acts as the voice of the customer and stakeholders and oversees the business side of the project. The Scrum master is mainly a facilitator for the Scrum process, helping the development team to overcome any forthcoming obstacles. The self-organizing development team consists of several individuals who do the actual work and perform various functions such as designing, analyzing, or testing.
Sprinting and shipping
Scrum proceeds in sprints or iterations. Ours are usually two weeks long. They begin with a sprint planning event, during which the Scrum team defines a sprint backlog (tasks to be completed during this sprint, based on the requirements of the product). The workflow is arranged with daily Scrum meetings of fifteen minutes, which advance the progress towards the sprint goal and strengthen the collaboration of the team. At the end of each iteration, the result – which should be something already usable, well integrated and tested – is delivered to the customer and everyone can give feedback. With Scrum, it’s possible for the client to have more say over the product from the get-go and take an active part in the development progress to get the best possible result.
At Orient Software, we are experts of Scrum. Most of our projects are managed with it. Our Scrum teams can easily re-evaluate, add, and change features of the product as the development goes on. That said, Scrum is not the only methodology we use: if a situation, a project, or a customer needs something else, we will adapt to it. For example, every customer simply doesn’t have the time to immerse themselves in the product development as deeply as would be ideal for the Scrum framework.
From our perspective, Scrum is especially fruitful in long-term projects in which our dedicated teams can continuously improve their communication, coordinate their work more efficiently, and take full responsibility of the product. This iterative and incremental development is the way of the world as it is the way of software products today. We are no longer living in a world with stores and shelves: they’ve gone online, just as we have. We aren’t simply selling the final product anymore, but also the maintenance and development of the product in the future.
PS. You can read more about Scrum in the “How we work” section of our page.
Topics: Software Outsourcing