What is agile? Agile is a time boxed, iterative approach to software delivery that builds software incrementally from the start of the project, instead of trying to deliver it all at once near the end.
What is a distributed dev team? A distributed team is group of developers that’s spread across geographical boundaries and time zones.
These are best agile practices for distributed software development teams:
Meeting face-to-face is the only way to build trust
- Allocate a recurring face to face meetings together with your internal team or offshore team
- Having a strong communication tool like Skype, Phones, high bandwidth and big screens in order to accommodate your remote team
- Set schedule of visits in frequent intervals across the length of the project
- Offshore and onshore teams that are working together must ignite relations and build strong trust
- Trust is most based factor to know who are the highest performing teams
When you are managing a remote team, there are a lot tools that you can use in order to connect with your team. Connecting with your teammates is also another way of building trust with them.
Establish a shared project vision
What is a project vision? Is an idealistic perspective of desired results to be produced for the business after successful project completion. It is a strong description of what the business will be like to inspire those project receivers to begin the project.
To establish a shared project vision:
- The whole team’s participation in this activity highlights ownership of the project outcomes
- Using collocation travel is the best way to build this
- Doing release planning, sprint planning, and daily scrum together will also help team build same shared vision
Establish continuous integration (CI) with high test coverage across all teams
What is CI? It is the practice of using automation to produce releasable software in short iterations, allowing teams to send high quality software continually. This is also essential to the project owner in making important decisions that could help the business become successful.
CI is essential since it identifies build issues instantly and it avoids the “big bang integration” which is one reason for schedule slippage at the end of project. Continuous integration doesn’t always mean to ship projects but it represents a commitment to ensure that your product is always in a release-ready status.
ScrumMaster at both locations
What is a ScrumMaster? A scrum master is the facilitator for an agile development team. Scrum is a methodology that allows a team to self-organize and make changes quickly, in accordance with agile principles. The scrum master manages the process for how information is exchanged.
- Most hindrances will need to be worked within the context and environment of each sub-team
Involve full team in release planning, iteration planning, review, and retrospectives
What is a sprint, iteration, release, review and retrospective?
Sprint – as defined by wikipedia, it is the basic unit of development in SCRUM. It is a timeboxed effort that is restricted to a specific duration. It usually starts with a sprint planning meeting that aims to define sprint backlog, identify the work of the sprint, and make an estimated update for the sprint goal and it ends with a sprint review and retrospective that check that reviews, the progress and identify lessons and improvements for the next sprints.
Iteration -in agile software development, it is defined as a single development cycle, which is usually measured as one week or two weeks. It also defined as the elapsed time between iteration planning sessions. In short, iteration is the act of repeating.
Release it is defined as the distribution of the final version of an application. In agile software development, it is defined as a deployable software package that is the completion of several iterations. Releases can be made before the iteration ends.
Review in software development, it is a type of software review in which an application is examined by its developers or other colleagues in order to evaluate its technical content and quality. The goal of peer review is to verify if the work satisfies the specifications for review, identify any discrepancies from the standards, and give some suggestion for improvements.
Retrospective is a look back of events that happened or works that have been produced. In agile software development, it is usually happened after the iteration process. During the retrospective, the team will look back and review the iteration process and identify those things that needs improvement so that the team or company will continue to grow.
- Everyone on the team must engaged in the sprint planning meeting, sprint reviews, and retrospective
- If sub-teams will conduct their own retrospective then they must share outputs or results with other teammates.
Use short sprints
- It is unwise to make a big project and hand it to offshore team in assumption of results after 6 months
- Short iterations insure that you are on track with your offshore team’s work roles on a daily basis wherein you can give quick comments or feedbacks and redirect the team swiftly.
We understand Agile. We understand how Agile can help make or break your startup. At Bootyard, we’ve developing Ruby on Rails applications since 2011 using Kanban. If you are currently building your MVP for your startup, we’d love to have dialogue with you on how Agile can help you move forward efficiently. Shoot us an email at firstname.lastname@example.org.