Scrum is easy to do badly, and hard to do well. One of its main challenges is effectively managing changes in a way that doesn’t cause conflicts. What is not regularly understood is that this is often a symptom of the testing and deployment infrastructure and is therefore hard to solve using Scrum techniques alone. Platform.sh’s development model unblocks Scrum projects and allows them to run how Scrum was supposed to.Documentation Index
Fetch the complete documentation index at: https://developer.upsun.com/llms.txt
Use this file to discover all available pages before exploring further.
What is Scrum?
Scrum is probably the most popular of the methods we generally call Agile. In Scrum, individual User Stories or Features are prioritized for development and estimated, then organized into a series of Sprints of equal lengths (usually between one week and a month). Sprints are planned just before each Sprint begins, which ensures that only the most important work at that time is scheduled. The team shepherded by a Scrum Master, however it is the team who is responsible for ensuring that the stories are completed. A lot of emphasis in Scrum is placed on the communication between the team through Sprint Planning, daily Stand-up meetings, and Retrospectives. Scrum is relatively easy to get your head around, as it places only a few restrictions on the development team, buyt it can be difficult to get right. Two of the biggest challenges of Scrum that can seriously impact on its efficiency are testing and feature conflicts.Managing conflicts
When using scrum, teams can very easily get caught in a cycle of rework which blocks other activity. Testing and quality assuring Features together is often necessary. The only way to do this, however, is usually in the main integration branch, and this leads to issues with rework, bugs, and (in the worst case scenario) backing out if something has failed testing. This last problem is the most nefarious, as it requires rebuilding the integration environment from a known good point (usually production) and reapplying changes from good features that have not been released, or alternatively continuing with the knowledge that your integration environment is now out of sync with production. Take, for example, a basic Scrum development pattern where multiple feature branches are made off of a production branch (Figure 1).

Scrum on Platform.sh
So how is Scrum different on Platform.sh? Our unique git-based environment workflow unblocks individual features and allows you not only to work the way Scrum intends, but also helps you when things go wrong. Scrum demands that we isolate features into workable Stories or Features. Platform.sh gives you a complete development environment for every git branch, with real production data, which unblocks testing for these Stories, while simultaneously enabling parallel development.

