Agile Methodology, Customer Experience, Nearshore, Product Development, Project Management
Organizational and Team Best Practices
While it might seem that adopting the agile-scrum framework to distributed teams is all about the right tools (especially if you read marketing materials from tool makers), in general, it is more about how you organize your teams and processes than anything else. For that reason, we decided to break this part of the discussion into two sections. Our assumption is you are only going to read so much during your breaks between meetings, on your smartphone….
Project Initiation
There are all sorts of reasons that a «kick-off» meeting is critical for project success, in fact, we’ve already talked about a few in the earlier posts from this series. But in this part of the series, we’re focusing on the organizational elements of a successful agile-scrum software development team.
One of the areas that are especially important is the cohesion and understanding between the individual members of the team. If it is not taken care of the upfront, it can take a long time to build. If you are not aware of the teaming model developed by Bruce Tuckman, this is a good time to start considering it. In short, Mr. Tuckman found that teams follow a regular pattern of «storming, norming and performing» during their lifecycle. If you can shorten this cycle and get too strong performance sooner, you are better off. We have found that kickoffs that include games, team-building, and participative events go a long way to achieving this goal. In fact, for longer projects, planning similar events around specific milestones prevents teams from going back through the cycle later in the process.
There are many guides available for these activities, but regardless of which ones you find useful, the actual activities are not something you can simply jump into and do from a book. It takes practice and experience to successfully integrate team activities into project initiation so the sooner you start using them the better. We have found teaming model to be an excellent resource, but again, it requires some hands-on experience to use successfully.
What do you need to do to assure success for project initiation meetings?
- Include as many team members as possible in a single location, even if some must travel greater distances. The time and expense will pay off handsomely in the end.
- If some team members or teams cannot attend, arrange parallel events that the teams can report on or share in an online conference format (voice, video, photos, etc.).
- Sync your agile – scrum processes, artifacts, and ceremonies across teams and participants with actual sessions during the joint event. Execute sprints if possible (use Sprint 0 as a base). Set expectations with everyone that the processes will be standardized and adhered to across the entire team.
- Establish a shared product vision with presentations, question/answer sessions, product games, etc.
- Agree on core project hours for the entire team (including product owners, proxies, etc.) and communication standards. Core hours should overlap considering the time zones involved. Ensure everyone commits to core hours and provides proxies if they cannot be reached.
- Agree to set regular meetings during core hours even if not everyone expects to be in the meetings. This assures if questions come up during the meetings, they can be quickly answered.
- Agree on timing for sprint planning, retrospectives, and other planning activities. The more standardized the timing for these meetings, the more likely they will be to be integrated into individual routines.
- Learn and respect cultural viewpoints across the team, festivals, language preferences. Plan to share status around holidays, common activities, etc.
- Encourage an atmosphere of fun, respect, and collaboration.
This is a lot to accomplish in any timeframe, much less a day or a few hours. Project kickoffs must be carefully planned and managed. They could and often should take more than a day. We’ve had initial meetings, including initial work, take as long as a week. Once you have dealt with them to and from aspects of the travel, the rest is relatively inexpensive – so don’t push to shorten the time more than necessary.
Best Practices for All Scenarios

Planning component breakdown during the kickoff.
We’ve said that part of making agile-scrum for distributed teams successful is including many of the necessary best practices in all projects, not just the ones with distributed members. These best practices are critical for distributed teams, but also just good practice in any software development project. Your distributed teams will «catch on» quicker if these are part of your regular practice and adapt to new situations better.
- Participation by every individual in the team in meetings is always important. That said, it isn’t natural for everyone. Team members must be positively coached to engage in active, personal participation. Avoiding situations where one person becomes the de facto spokesman for the team helps to ensure team members don’t sit back and not contribute. Trust is an important element in participation. Team members must feel comfortable questioning ideas and playing devil’s advocate when necessary to draw out concepts and beliefs. Each team member must feel enabled to speak directly with the client/project team to avoid forming communication chains that will inevitably muddle and shorten their message.
- Plan frequent live demos and retrospectives with time for questions and clarifications. Communication in these meetings should not be more tightly time-bound than necessary, but when long conversations do surface, don’t be shy about moving them to a parking lot to be addressed in a specific meeting meant to resolve that issue with the right people involved.
- Scrum masters should be careful to practice servant-leadership roles. They need to concentrate on removing impediments so tasks can move forward rather than prescribing how tasks should be done.
- Pre-plan a larger window of future sprints on a weekly basis (depends on the length of sprints) specifically to expose interdependencies between teams, roles, etc. and groom backlogs with the team as a whole.
- Lean to short sprints rather than long and synchronize/prioritize between teams regularly. Avoid situations where a team could go too far down a path before syncing with others.
- Have irregular, casual «brown-bag» sessions to discuss technical alignment, decisions and common ground among members and teams.
- Find ways to rotate team members. Rotation can be between locations, roles, among teams, etc. Don’t allow individuals to become insular units by themselves or with specific team members. Accomplishing this goal can be challenging, but it is especially important in longer projects. Rotation should not be «one way» (always to the client site for instance) and where it isn’t possible, consider remote pairing too as an alternative.
Granted, these points are not easy to accomplish. They take planning and practice to get right – but the aim is to ensure a successful project and enough cannot be said about how much of success is preparation. The next installment in this series will continue to explore organizational and team issues, there is a lot to cover. We will also cover issues related to specific scenarios that we have found take a slightly different approach. I hope you will stay with us to see how important it is to understand software development projects in an agile-scrum environment and learn more about what is needed to extend it to distributed teams.
If you are coming in the middle and want to jump back to the start of the series, you can start here. Or if you are looking for a software development partner and want to contact us, just click here and leave us a message and we will be contacting you ASAP.
Customer Experience, Nearshore, Outsourced Engineering Team
With the continuous rise of smart technology, it is only natural for company owners and managers to find ways of incorporating software development into their respective businesses. After all, software engineering is the core foundation of the web and mobile apps that connect and cultivate the modern customer’s loyalty to the brand.
Why outsource your software development projects
Although US businesses have the advantage of operating in the tech capital of the world, the majority of US companies choose to outsource software development to another country. Outsourcing saves time and effort in finding and hiring a professional that can do the job well. It is also likely to be more cost-effective. In 2015, more than 470,000 IT jobs were outsourced from the US to other countries such as Mexico, India, and Ukraine.
Aside from price and quality, one must also consider the cultural compatibility of the outsourcing firm to your business process or model. Business cultural compatibility can help break several barriers (e.g. language) that usually accompany cross-border associations.
Cultural compatibility: Which one matches your business?
If you are thinking of outsourcing software development to either Mexico, India, or Ukraine, here are the things you need to know:
Mexico
1. Their business culture is heavily influenced by the US
A large number of US multi-national companies operating in the country might have something to do with how Mexico structures its business models and processes. Unlike their American counterparts, however, Mexicans tend to favor personal relationships rather than individual skills. This means you need to personally gain their trust first before they will allow you to conduct significant business with them.
2. Their management style is paternalistic
Managers tend to treat subordinates like family. Nevertheless, this does not mean they cannot impose severe punishment towards a wayward employee. They just like to combine an authoritative approach with certain familial warmth. This creates a deep sense of loyalty between the manager and the employees.
3. Business meetings in Mexico present an opportunity to exchange information and free-flow ideas
If you are the type of person to strictly follow the agenda in a business meeting, you might feel frustrated in a meeting with a Mexican business partner. On the bright side, you’ll go home teeming with excellent ideas to keep your business ahead of the curve. The more active and animated a Mexican is in a meeting, the more you are guaranteed that he/she is committed to doing good business with you.
India
4. They are strongly guided by religious and cultural beliefs
As with most countries in Asia, religion and tradition play a big part in doing business in India. For example, you should never use your left hand to shake hands or offer/accept things, as they believe that the left hand is unclean.
5. Their business core value is family-oriented
Indians are strongly family- and community-oriented. One must first establish a personal connection before they will be open to do business with you. Meetings would often begin with personal questions about each other’s families. It is also expected that business partners spend a lot of time interacting through dinners and social clubs to build good relationships with each other.
6. Regular contacts and face-to-face meetings are the keys to a fruitful business relationship in India
Building personal relationships is important when conducting business in India. Unfortunately, you can’t build a good personal relationship purely by phone or email. You need to take frequent trips and meet face-to-face with your Indian counterpart if you want to ensure the success of your business collaboration.
Ukraine
7. Ukrainians have a flexible concept of work hours
In Ukraine, the concept of time is directly linked to the person’s hierarchical status in the office. A manager may arrive five to 20 minutes later than expected. Even with appointments made in advance, it is considered polite to call a day to confirm the actual meeting.
8. Ukraine acknowledges both personal relationships and individual skills when hiring new people
While people with personal connections to managers might have a slight edge during the hiring process, Ukraine’s business culture compels decision-makers to also put the individual’s skills and expertise into consideration. They are known to express their delight and/or disappointment openly, regardless of whether it is a personal or professional relationship.
9. Ukrainians are masters in multi-tasking
If your Ukrainian counterpart starts to take phone calls or read emails in the middle of a conversation or a meeting, don’t be offended. They are not trying to be rude, but they are trying to show how efficient they are in their work by doing multiple things at the same time.
10. Whether it’s Mexico, India, or Ukraine, it is advisable to schedule a meeting coinciding with lunch breaks.
Lunch break is already a lengthy affair, so it is also the best time to discuss business concerns. It does not hurt that there is a warm, hearty meal in front of everyone to improve the mood. Lunch meetings are the best way to establish camaraderie and know your business partner better both professionally and personally.
Looking for a suitable software development company?
Traveling halfway across the globe to outsource your software development project can be a hassle. To avoid this, choose us, our development centers are located in Morelia, Michoacan, Mexico.
With us, you don’t have to worry about travel expenses or managing fast-moving projects as you’ll be able to collaborate with Mexico-based team members in real time. This is the true agility of nearshore software development. Contact us now and experience better cultural compatibility and alignment in your business.
Agile Methodology, Customer Experience, Mobile, Nearshore, Outsourced Engineering Team, Product Development, Technologies
When building any kind of company, there are steps you must take that will do the most to ensure your success. These steps are especially lucrative when building a company that works for other companies such as the ever-growing industry of software-as-a-service. It may be difficult to know on your own what are some of the ways you can ensure success in your software service company. To make it simpler for you, we have compiled a couple of the ways that you can see to it that your company has the best shot of success.
Keep it simple
Because software is often self-serve it is best to keep it simple and easy to use considering the majority of business owners aren’t computer geniuses. Making it more user-friendly will mean that more people will want to use your software for their business. Keep it simple, tidy, and user-friendly.
Never stop improving
O
ne way that a lot of software service companies fail is that they become complacent with their software. A good software service company listens to their customers and continuously improves and updates its product to make it work even better and smoother. Monitoring what the consumer is saying allows the software service company to cut out unnecessary functionality which ties into the “Keep it simple” rule.
Offer several different packages
You should always have more than one package available where the first and lowest functioning one is basically free. From there you can increase the price per software based on customer needs, usability, willingness to pay, and ROI.
Display a path to profitability
Oftentimes a company will not be profitable simply because they invest their resources to sustain growth. Good service software companies must show that they plan to be profitable in the next few years and that they have a path to profitability. The best way for a company to achieve this is to hit profitability every couple of years before reinvesting.
Offer the perfect mix of services
Offering the right amount of services can be difficult for a company but it is highly lucrative to the success of a said company. On one hand, they increase revenue and reduce churn rates whereas on the other hand they reduce margin and increase deployment time and cost of sales.
Commit to the success of your customer
One of the most important things to remember when growing a software service company is to sign new customers as well as commit to grow and secure its recurring revenue from previously signed customers. To accomplish this, the company must be monitoring its customer’s usage levels continuously as well as send them customer satisfaction surveys and product updates among other things.
These are just a few of the major points to remember when you are trying to build a successful and profitable software service company. Along with these, you will find that you discover things that work for your company and your specific product and what does not.
Are you ready to develop your App?
Click here and schedule a meeting
Scio provides end-to-end engineering services in a collaborative partnership to ensure that your team is an integral part of the solutions you require. We can offer a wide range of skills to make up a team that you can depend on – and work with directly. And when you need something more – we’re flexible. From helping to assess your needs to developing, implementing and maintaining solutions, we can offer as much or as little help as you need. Our teams can work with you virtually or on your site – but most companies need some type of combination of the two and we’re more than happy to find that blend too. If you think that sounds interesting – Contact Us. We’re ready.
Agile Methodology, Nearshore, Outsourced Engineering Team
Software development projects use different types of software development life cycle (SDLC) methodologies, depending on their nature and requirements. They basically define the way that software development work is organized.
The two main approaches are the traditional or waterfall method and the agile software development method. How are they different from each other and which one should you choose for your project?
First, we want to define each methodology:
According to Wikipedia «the traditional methodology or waterfall is a sequential development approach, in which development is seen as flowing steadily downwards through several phases»
On the other hand, Agile methodology is defined as a way of building software through incremental, iterative work cadences, known as sprints. «The highest priority is to satisfy the customer through early and continuous delivery of valuable software» – Agile Manifesto
Comparison between Agile and Traditional Software Development Methodologies
-
Software Development Lifecycles
One main difference between the traditional and agile methodologies is the sequence of the phases in which the software development project is completed.
The traditional method uses a linear approach where the stages of the software development process must be completed in sequential order. This means that a stage must be completed before the next one begins. These stages usually comprise the following:
- Requirements gathering and documentation
- System design
- Code and unit testing
- System testing
- User acceptance testing
- Bug fixes
- Product delivery
On the other hand, the agile methodology uses an iterative and team-based approach. Its main objective is to quickly deliver the application with complete and functional components. Instead of completing the software development tasks in sequence, they are completed in sprints that run from around 1 to 4 weeks and where a list of deliverables is completed in each sprint. The tasks that do not get completed within the sprint are then reprioritized and included in future sprints. This also means that the different stages of the software development life cycle can be revisited as needed.
The agile software development method uses an iterative and team-based approach
The typical agile development lifecycle involves the following phases:
- Requirements
- Plan
- Design
- Develop
- Release
- Track and Monitor
With the traditional method, the details of the entire project have been visualized and defined before the project starts. In contrast, the agile methodology allows for more flexibility in that changes can more easily be made even after the project starts.
It is best employed if the scope of the project cannot be clearly defined in advance. This also means that making unplanned software development changes with the traditional method is costlier than with agile.
Customers are highly involved in the early stages of the software development process when employing the traditional methodology. More specifically, their input is needed during the requirements gathering phase, as they must provide a detailed description of what their requirements are with regards to the software application to be developed and how they envision it to function.
However, they have limited involvement after the software development process starts, aside from attending status meetings, doing reviews, and providing approvals. They usually get to see the product in its entirety after a software development life cycle is completed.
The agile software development method requires more customer involvement
In contrast, the customers are highly involved in every stage when employing the agile development process. They can review the application at every phase and make suggestions for improvement.
As a result, the customers are more engaged in the entire software development process, in turn ensuring that they are satisfied with the finished product.
The traditional method has more formal documentation and review process than the agile approach. Each phase of the development process is properly documented and reviewed when using the traditional approach.
On the other hand, due to the quick delivery time required with the agile method, changes are usually made directly on the code, with the developers just adding comments and annotations. This doesn’t mean that documentation is not an important part of agile software development projects.
Documentation in agile is typically seen as a strategic part of the development process, where all that is written has a purpose. It is a simplified document with executable specifications and stable concepts.
Which software development method should you choose?
When choosing the methodology most suitable for your software development project, some of the things you should consider are:
- The speed of completion.
- The size of the system.
- The level of collaboration and interaction that is possible among the software development team members.
In particular, if you need to quickly release a basic product that you can later build on and add more features too, then the agile methodology may be more appropriate for your project. It works best if you have a startup, which means that you have limited resources but need a basic software application to get your business up and running. Likewise, this approach is suitable for small-to-medium-sized software applications.
On the other hand, the traditional method is better suited for projects in large enterprises where the specifications and requirements must be clearly defined before the project commences. Although the project may be divided into smaller components, each of which is developed with the agile approach, this comes with the risk that the individual components may not be compatible with each other once they are integrated to complete the final product.
Finally, the agile software development method requires a high level of collaboration among the stakeholders involved where each stakeholder must be readily available for input or feedback. In this regard, if you’re working with various groups (software developers, vendors, testers, customers, and others) that do not work in a single physical location or that may have limited availability, then the traditional approach may be the better option for you.
Agile vs Traditional
Both traditional and agile software development methods have their own advantages and disadvantages.
However, whenever feasible, the agile approach should be considered, as it provides more benefits, especially for startups. It enables a complete functional software application to be released faster. It is also more cost-effective, as making changes is less costly than with the traditional approach. Budgets can also be determined on a per-sprint rather than a per-project basis.
Moreover, because the customer is highly involved and changes are constantly made to the application, a higher quality of work is achieved.
With the use of technologies such as webcams, VoIP, and others, a high level of interaction is still possible even among remote teams. In this regard, this collaborative nature of agile fosters trusts between the customer and the software development team.
In summary, the software development method most appropriate for your project will depend on factors such as schedule, cost, quality, and the other resources available to the project. As such, it should be the first decision that you and your software development team make.
By organizing the different stages of your project efficiently, you can better ensure its successful completion — that is, a project that is developed on time, within budget, and where the customers are happy.
Want to start building your next software idea? Want to give it a shot on the Agile methodology? Contact us we have been working with this methodology for more than 8 years now. So, let us know how we can be helpful to you. We love to help!
Agile Methodology, Customer Experience, Nearshore, Product Development, Project Management
Technical Best Practices
Building on the discussion of distributed agile-scrum teams in software development we started in the first post in this series, in this post we will discuss some of the principle technical best practices our team at Scio has found to be beneficial for distributed agile teams.
Communications for Distributed Agile Teams
One of the most important areas to consider technically is the use of flexible instant messaging platforms. While these platforms cannot fully replace face-to-face interaction in all cases (especially for first-time encounters), they can go a long way toward building the trust and open relationships that are expected in an agile environment. They must be flexible enough to adapt to a wide range of network speeds and requirements while providing text chat, file transfer, desktop/app share, voice, and video interaction. This requires an understanding of the available bandwidth at each location included in the project, technical constraints of the end user environment, and fallbacks that can be used when the normal application doesn’t function correctly for some reason. Messaging tools must be as «transparent» as possible – not creating extra overhead for ad-hoc meetings that are necessary to iron out important details on the fly, while still providing some extra tools that smooth interaction in larger meetings like side-channel text chats. It may seem trivial to simply adopt one of the many tools available for the purpose, but in practice, finding something that can be widely adopted and quickly brought into daily use is more challenging than you might think. Issues to consider include:
- Messaging security – Some industries (such as health care) and some projects may require security over and above that provided by the messaging application itself.
- Standards – Special situations may require some standards or rules of the road for users and in a lot of cases, enforced rules may be the easiest route to providing compliance for issues like branding, copyright, and industry compliance. This can be especially important when desktop sharing is used – are there areas in users systems that should not be shared for some reason?
- Special needs users – Are there users on the team that require or could benefit from voice to text (rather than keyboard) interaction? Is video easier for some users? It is better to find a platform that provides options for special needs rather than trying to build in workarounds after the fact.
- Availability – There is nothing worse than a messaging system no one takes seriously. If it needs to be tucked away, if it is only used when «planned for,» if there is no response when it is needed to answer a critical question, it is just another bit of project overhead and not a useful communication tool. If everyone does not adopt the same tool – much the same is true. This is really not a technical issue, it is more organizational in nature, but it is a waste of time to implement a special system no one is using. Make it part of the agreements in the project kickoff – and use it.
And one additional tool that is indispensable for communications – a camera. It can be as simple as using a smartphone, but having a way to capture white boards, project artifacts and even selfies of team members can be invaluable to bring everyone to the «same page» quickly and to act as a project memory in future interactions or to bring missing members up to speed. It seems like a small point, but if you only think of photos after the fact – it will be too late.
Project Management, Testing and Source Control
Deciding on the project management tools to be used (or not used) during the initial planning session is critical to success. The actual tool used may depend on the standards adopted by the client team before the project starts or they may depend on the type of project involved. Regardless, they must be network-based (so everyone sees the same project status without forcing updates), agile-scrum aware (backlog, burndown charts, etc.), and easy to adopt without a great deal of unnecessary overhead. Another point to consider – can individuals take responsibility for stories and status transparently? Can they update their status as a part of their regular work? For this reason, we use the Team Foundation Server as an integrated part of our Visual Studio environment as a standard. It has agile templates built in and allows individuals to manage their work as part of their development environment. No jumping out to another application. Of course, that said, we do adapt Trello for shorter projects and smaller teams. The right tool for the job is always important to consider.
Today, testing automation, continuous integration, and standardized configuration management are not just good ideas, they should be standard for every project. That said, access and availability for members of a distributed agile team is an important technical hurdle to solve immediately at the start of the project. Along with rules (more on that in the next article in this series) to push early and often rather than «once in a while» it is a critical element of any team environment – especially for distributed teams. It is not something you can easily back into «when you decide it is needed.» It requires consideration for implementation, training and the processes that will be used. Again, this is a subject to be fully discussed in the project kickoff, regardless of who is implementing and using the systems. A single code repository with logging enforced will go a long way toward understanding clearly where the team is and what is really complete at any stage. Again, this isn’t just a best practice for distributed agile teams – all development teams should be regularly using these tools so there is little to no time required to reach productivity with them.
One more thing? Clocks on the wall, for each part of the distributed team, with labels. It seems simple – but when you need to reach someone before they leave for the day – it can make all the difference.
Wiki?
It might seem trivial, but a networked team wiki with space for sharing assets, current status (including builds, etc.), coming meetings, etc. can make all the difference to both communication and «personalizing» interactions between team members. A project wiki can include:
- Project wiki with procedures, contact lists, learning during development, editable spring plans, project artifacts (photos, documents) both up to date and historical.
- Team member profiles with photos, fun facts, recent changes, etc.
- Photos and notes from casual and social team meetings (games, lunches, etc.)
- Hours, holidays by location, agreed core team core hours and days when all team members will be available.
Each individual project may have additional technical issues that have to be considered, but this is the starting point we use to consider the set up for every project. In the next segment of this series, we will consider the organizational issues involved in adapting the agile-scrum framework to distributed agile teams. Stay tuned!
Did you come to the party late? You can find the first article of this series here
Agile Methodology, Customer Experience, Nearshore, Product Development, Project Management
Practices required for distributed teams: Basically Agile (and Scrum!)
The use of the agile methodology in combination with the Scrum framework is a widely accepted industry standard for software development throughout the world. Together the methodologies provide an iterative and collaborative system that has been proven to be adaptable and resilient over a wide range of implementations by teams in the industry.
What makes the combination of these methodologies so attractive and useful in the development of software?
- An adaptable framework for iterative software development that provides the customer working software for evaluation in regular, short increments.
- The ability to deal with incomplete or fluctuating product development concepts during the process of development in a way that allows discovery and adjustment as needed.
- The project team includes formal roles and responsibilities for both the client, development team and each individual in decision making during the development process.
- The inclusion of systems for communication, trust, and collaboration across the entire product development team.
- Recognition that the availability of team members for consultation during core working hours is critical to the iterative production process to assure alignment and to allow adjustment as needed.
- The production process includes regular daily meetings, as well as meetings for production assessment and planning that are focused on understanding the status of committed work, clearing production obstacles, and making adjustments where necessary to achieve goals the team has committed to accomplish.
- Outcomes that have proven to be beneficial to both the client and the development team in the development of successful software applications.

Of course, if you dig into the implementation details of agile and scrum for software development, you will find a number of additional benefits. Each team and project can and does adapt the processes within the framework to fit the constraints of their situation. But with the focus on real-time collaboration and face-to-face interaction, what happens when circumstances combine to require the use of agile and scrum across a team that is distributed across geography? Can the agile-scrum framework be adapted to a distributed team? That is the focus of this five-part series – Best Practices for Distributed Agile Teams.
Adapting Agile & Scrum to a Distributed Team
With the availability of broadband network access across the Internet, as well as the benefits and pressures provided by a global marketplace and workforce – it is critical that the benefits of the agile – scrum framework can be both adapted and scaled to provide their benefits to distributed teams. For the purposes of this series, we will consider any team that has members who are not physically in the same location during core working hours, they are distributed. That could mean the team is spread across a metropolitan area where colocation is both time-consuming and expensive or the team is spread across a wider area – across states or national borders.
The business advantages of opening horizons for software development by distributed teams are relatively obvious:
- A distributed model brings a wider field of skills and expertise into play, often with lower costs.
- Varied experience in both technology and problem-solving can bring more answers to the table with a lower cost of recruitment and faster fulfillment of specialized requirements
- Entire teams can be sourced with less time, training and deeper experience in leveraging agile-scrum for software and product development.
The scenarios for distributed development can include:
- Development team together in a development center with
- Client in a different location, same time zone
- Client in different location and time zone
- Split development team
- The development team is split between locations or combined with a client team in another location or both
- Same time zones or different time zones
- Various combinations – split client team, outside consultants, single team members remotely located
Continuity is Key
Regardless of where the client is, adaption to a distributed agile – scrum model is critical to ensure the involvement of key stakeholders, development and product teams and to achieve the benefits of the framework in projects. In fact, at Scio, we have found that consideration and inclusion of the practices required for distributed teams are critical to all our software development projects – whether they are considered to be «distributed» or not. We have found:
- Using the practices required for distributed teams provides a more scalable base for all software development teams.
- If distributed team practices are not in the standard agile repertoire:
- New projects that require a distributed team have a longer ramp to productivity because team members have to adapt to new tools and practices.
- Projects face a higher risk because situational adaptions selected by teams may not be proven and optimal.
- Teams may have to spend many cycles dealing with organizational issues to reach full productivity.
So, from our experience – adaptations of the agile-scrum methodology and framework to allow a distributed team environment is just good practice. They bring many benefits, including better communication, formalized technical environments, and organizational adaptions. They are a critical part of our work environment and our commitment to our clients.
During the following four parts of this series, we will explore some of the best practices Scio has found to be beneficial for distributed teams and some of the myths that we find are common when the idea is considered by organizations. We hope you will stay with us because there is a lot to know about leveraging a distributed team environment successfully for software development.