Distributed Scrum Framework for Agile Software Development
Agile development ensures agility within a software development organization, and close collaboration between engineering and business. Adopting an Agile approach can significantly increase speed of development and reduce errors and defects. However, adopting Agile development processes is not an easy task, and managing distributed Agile teams can be particularly difficult.
Systems In Motion has designed a Distributed Scrum development model that addresses all the challenges in Agile development and has proved to effectively leverage this methodology in delivering zero defect applications in a completely collaborative environment with product owners, developers, and testers distributed across client locations and our Michigan Delivery Center.
The Scrum framework for Agile software development emphasizes collaboration, planning around user stories, 2 week development sprints, and constant testing. This model creates a naturally close interaction between product owners and delivery teams that results in better outcomes and higher quality development. Integral to the framework is the ability to be in constant contact and discuss issues as they come up. Something that is difficult to achieve in an environment where the teams are not working in the same time zone.
Systems In Motion's onshore delivery centers, connected to client locations by a combination of development and communication tools, and teams managed by experienced Agile development leads, solves this problem. This results in an outsourced software development engagement that is highly responsive to changing requirements, and has quality assurance built in throughout the development process.
Distributed Agile Scrum Enablers
Systems In Motion has invested in a number of technology and process enablers to make distributed Scrum effective. A key feature in Scrum development is the daily stand-up meeting between the product owner and members of the development team, where the discussion centers around a daily 'burndown' of the coding requirements. The Distributed Scrum model needs a set of process and technology tools that can create an effective way of communicating all aspects of the methodology. This includes:
- Team member rotating between customer and delivery teams
- Investment in building Agile development expertise across customer and delivery locations
- Use of tools like VersionOne, Rally Software and AgileZen as a platform for management of the development process
- Project and product wikis for shared knowledge bases
- Constant communication through voice, video, and chat channels (e.g. Skype and Hi-Def video conferencing)
Systems In Motion Scrum Process
Scrum Implementation Services
Our Scrum process has been developed from knowledge gained by successfully applying agile development practices to meet a wide variety of customer needs across many industries. In addition to our adoption of Agile Development practices for software development, we also offer a series of Scrum Implementation Services to help companies get started with scrum, including:
- Consulting to develop a scrum process that works within your organization
- Recommending tools that will help you effectively implement the process
- Evangelizing scrum to the different teams that will be involved in the process
- Training team members in the scrum processes
- Organizing the first pilot project and refining your processes based on lessons learned
- Documenting final processes and training internal trainers to support the rollout