Your Dev Team Needs Coaching Skills 

Your Dev Team Needs Coaching Skills 

Written by: Yamila Solari

Software development team collaborating during a team meeting in an Agile work environment.

Nowadays, it’s not enough for software development teams to be technically brilliant, they also need to know how to learn, adapt, and grow together. As Co-founder of Scio and a certified organizational coach, I’ve seen firsthand how the right coaching skills can elevate an Agile team from simply functioning to truly thriving.

Let’s unpack why coaching skills are essential for every dev team, not just managers or Scrum Masters, and how to bring them into your day-to-day practice.

Why Coaching Belongs in Agile Teams

At its core, coaching is a way to help others learn or change. Unlike mentoring or directing, coaching relies on powerful questions, deep listening, and trust to spark self-discovery and action. That’s exactly the kind of dynamic learning we want inside Agile teams.

Agile teams work in environments of constant change and iteration, where new technologies, tools, and requirements emerge faster than most formal training programs can keep up. In this setting, the ability to teach each other, problem-solve collaboratively, and reflect as a team becomes critical.

Here are a few characteristics that make coaching especially relevant in Agile teams:

  • Cross-functionality: Everyone has a different specialty, and often, different viewpoints.
  • Self-organization: Teams are expected to take ownership, not wait for top-down direction.
  • Frequent feedback loops: Scrum ceremonies demand reflection and adaptation.
  • Psychological safety: Learning can’t happen without trust.

When team members are equipped with coaching skills, they’re more effective at giving and receiving feedback, challenging each other constructively, and making sure that learning sticks—without turning every mistake into a crisis.

What Coaching Skills Bring to the Table

Training team members in coaching techniques builds essential competencies that go far beyond people management:

  • Active listening – really hearing what’s said (and unsaid)
  • Powerful questioning – opening up thinking without prescribing
  • Building trust – essential for psychological safety
  • Giving and receiving feedback – candid, kind, and constructive
  • Following through on action plans – turning insights into impact
  • Supportively challenging teammates – helping others grow, not stay comfortable

These skills not only improve collaboration but support the Agile principles of transparency, inspection, and adaptation.

Puzzle pieces forming a white arrow pointing right on a yellow background.

Team-Led, Not Top-Down

While having an organization-wide coaching culture is ideal, that kind of transformation can take years and requires deep buy-in from senior leadership.

I want to make the case for a more accessible approach: let every team create their own coaching culture, with the support of a coach when needed. Agile teams are already empowered to self-organize, why not self-develop too?

By starting at the team level, you keep it practical, grounded, and tailored. Over time, these micro-cultures create a ripple effect throughout the organization.

A Road Map for Bringing Coaching into Your Team

You don’t need a full-blown organizational transformation to start cultivating a coaching culture in your team. However, you may need the sponsorship of a manager to get access to a team coach for training and support. Here’s a practical rollout plan:

1. Start with your Team Lead(s) and senior devs

Train your team lead(s) and senior devs first. They’ll model the skills in one-on-ones, the agile ceremonies, code reviews, and standups.

2. Then train the whole team by focusing on the Basics

Start small with three core skills:

  • Active listening
  • Powerful questions
  • The GROW coaching model (Goal, Reality, Options, Will)

3. Build It into Agile Practices

Coaching works best when it becomes part of how the team communicates, reflects, and improves every day.
Start by making small but meaningful adjustments to your existing Agile ceremonies:

  • Daily Scrum

Add one coaching-style question, for example: “What’s the small experiment you’ll try today?” This encourages learning through action and supports a growth mindset.

  • Backlog Refinement

Invite developers to coach the Product Owner on how stories could be sliced thinner or clarified. This creates shared ownership and teaches developers to ask thoughtful, outcome-focused questions.

  • Sprint Review

Help stakeholders structure their feedback using a coaching-inspired format:
Appreciation → Question → Suggestion.
It frames feedback constructively and invites dialogue instead of judgment.

  • Retrospective

Rotate the facilitator role so each team member gets to guide the session.
Use the GROW model to turn insights into real action. Over time, this develops leadership and coaching confidence across the team.

Additionally:

    • Add “ask before telling,” “coach, don’t criticize,” and “we give timely, kind, candid feedback” to your team working agreements.
    • Set aside time during the sprint for informal peer-coaching conversations and practice.
    • Host a monthly “coaching development series” where more nuanced knowledge about coaching can be discussed.

    By weaving coaching into the fabric of Agile, you make it feel natural and not like another task, but simply how the team works and grows.

    Person holding glowing icons representing knowledge, collaboration, and innovation in a tech environment.

    Final Thought

    We often talk about upskilling in tech—new frameworks, new languages, new stacks. But what if the biggest unlock for your team isn’t technical at all?

    Teaching coaching skills may be the smartest, most scalable way to build adaptability, trust, and sustainable high performance into your development teams.

    Start small. Start where you are.

    Further Reading

    The Leader as Coach – Harvard Business Review
    A compelling argument for why coaching is becoming the most effective form of leadership in fast-paced, knowledge-driven workplaces.

    The GROW Model
    A breakdown of one of the most popular coaching models used in organizations, perfect for Agile retrospectives, one-on-ones, and learning conversations.

    Psychological Safety – Amy Edmondson
    The foundational research article that introduced the concept of psychological safety—crucial for any team trying to implement a coaching mindset.

    Coaching Agile Teams – Lyssa Adkins
    A must-read book for Agile coaches and leaders, exploring how to blend Agile principles with coaching stances to help teams mature.

    Yamila Solari

    Yamila Solari

    General Manager

    How to Build Culturally Aligned Nearshore Teams That Actually Work 

    How to Build Culturally Aligned Nearshore Teams That Actually Work 

    Written by: Denisse Morelos

    Diverse nearshore team collaborating and smiling around a shared task, symbolizing cultural alignment.

    Introduction

    For U.S.-based tech companies, building distributed software teams has become a strategic move. Nearshoring to Latin America—especially Mexico—offers not only proximity and time zone overlap, but access to strong engineering talent. However, a nearshore team’s success goes far beyond logistics. What really makes the difference is cultural alignment.

    This article walks you through what cultural alignment looks like in practice, how it impacts your ROI, and how Scio’s nearshore engineering framework—shaped through years of collaboration—can help build teams that truly deliver. For a deeper dive, see The Long-Term Benefits of Cultural Alignment in Team Augmentation.

    Why Cultural Alignment Matters in Nearshore Software Teams

    It’s More Than Just Time Zone Compatibility

    Sure, time zone overlap makes real-time collaboration easier. But shared hours mean little if the team isn’t aligned on communication norms, expectations, or decision-making styles. Misalignment in these areas can lead to friction, slowed delivery, and repeated work.

    Imagine this: your U.S.-based team gives fast, blunt feedback. Your nearshore team interprets it as negative or disrespectful. Now you have a cultural issue—one that no project management tool can fix.

    The Hidden Costs of Cultural Misalignment

    When cultural alignment is missing, we’ve seen it show up in:

    • Slower onboarding and unclear expectations
    • Repeated corrections due to misunderstandings
    • Low morale and high turnover from feeling out of sync
    • Project delays and declining trust between teams

    These hidden costs can quietly erode productivity, delivery quality, and team engagement—three areas that matter deeply to any CTO.

    For more insight, explore Overcoming Challenges in Nearshore Development: Tips for Seamless Collaboration and Harvard Business Review’s guide on Harvard Business Review’s guide on Managing Multicultural Teams.

    Infographic representing shared work values and cultural alignment in nearshore teams.

    Key Elements of Cultural Alignment

    Shared Work Values and Expectations

    In our experience, high-performing nearshore teams don’t just follow tasks—they share core values like ownership, curiosity, adaptability, and proactive problem-solving. When engineers are aligned with your company’s mindset, we’ve seen productivity and retention improve dramatically.

    That’s why we prioritize both technical expertise and cultural compatibility during our recruitment process—drawing from what’s worked in building distributed teams across industries. If you’re looking for guidance, check out How to Evaluate Cultural Compatibility When Hiring Nearshore Teams.

    Communication Norms and Language Nuance

    Even fluent English speakers interpret tone, formality, and feedback differently. A U.S. team might say “this needs to be better,” expecting iteration. A Latin American engineer might hear that as a sign of failure.

    Rather than expecting teams to adjust on their own, we’ve developed intercultural coaching practices to help both sides bridge these differences effectively—resulting in clearer, more respectful communication.

    Team Rituals That Build Trust

    Culture isn’t something you download—it’s built day by day. In our work with nearshore teams, we’ve seen that stand-ups, demos, retrospectives, informal chats, and celebrating wins together (even virtually) all contribute to creating a sense of unity.

    These shared rituals help establish psychological safety, allowing distributed teams to operate as one.

    Best Practices to Build Culturally Aligned Teams

    Hiring for Soft Skills and Cultural Fit

    At Scio, our mission goes beyond simply outsourcing developers—we partner with you to build cohesive, committed teams.

    With our ScioElevate system, we’ve refined a process to identify candidates who bring not only strong technical skills, but also the emotional intelligence, openness to feedback, and cultural curiosity that distributed collaboration demands. These soft skills are often what make or break success in global teams.

    If you’re building remote teams, we recommend reading Remote Work: Soft Skills for a Successful Team.

    Onboarding That Goes Beyond the Tech Stack

    We’ve learned that great onboarding isn’t just about access to Jira or Slack—it’s about creating alignment from day one.

    That’s why we’ve co-designed a structured onboarding experience, shaped by years of client collaboration, that includes:

    • Tools and workflow orientation
    • Communication expectations and feedback norms

    This human-centered approach accelerates integration and builds trust early on.

    Continuous Feedback Loops and Retrospectives

    Over time, we’ve found that strong distributed teams develop shared rhythms for feedback. Weekly 1:1s, retros, and informal check-ins create space for continuous improvement and early issue detection.

    Together with our partners, we’ve fostered a feedback culture that emphasizes growth over criticism—something that’s proven essential in maintaining engagement and reducing turnover.

    For more on agile practices in remote teams, read Best Practices for Distributed Agile – Part 4 of 5.

    Hands stacking communication icons on blocks to represent async and sync collaboration strategies.

    How Scio Builds Teams That Actually Work

    We believe that scaling a software team should never come at the cost of communication, continuity, or quality.

    That belief led us to create ScioElevate—our internal talent development and performance framework—shaped from years of working closely with nearshore engineers and global product teams.

    To learn how our internal culture supports this, read “Collaboration is at the heart of everything we do here”.

    Additional Benefits of Nearshoring to Mexico

    Beyond cultural alignment, Mexico offers compelling advantages for U.S. companies looking to scale:

    • Large tech talent pool: Over 700,000 professionals in IT and engineering roles.
    • Time zone overlap: Real-time collaboration across U.S. time zones.
    • Business-friendly regulations: Favorable IP laws and trade agreements under USMCA.
    • Cost-effectiveness: High-quality talent at competitive rates compared to U.S. or Eastern Europe.

    These advantages make Mexico a strategic choice for building high-impact software teams.

    Puzzle piece with a question mark symbolizing frequently asked questions about nearshore cultural alignment.

    Frequently Asked Questions About Nearshore Cultural Alignment

    What is cultural alignment in nearshore teams?

    Cultural alignment refers to shared expectations around communication, decision-making, feedback, and work styles. It helps remote teams function as a unified group, rather than just outsourced contributors.

    How do I evaluate cultural compatibility when hiring?

    Go beyond the résumé. Use behavioral interviews to assess curiosity, adaptability, and communication style. Present candidates with real scenarios to see how they handle feedback or collaborate across teams.

    Why is nearshoring to Mexico so effective?

    Mexico offers a strong pool of engineering talent, works in overlapping time zones with the U.S., and shares many cultural traits that allow faster and smoother integration compared to other outsourcing regions.

    Can I build a high-performance team remotely?

    Absolutely. Success depends more on people, mindset, and alignment than on tools alone. With the right framework, distributed teams can equal—or even outperform—co-located ones.

    Final Thoughts: Cultural Fit Is a Strategic Advantage

    When your team is aligned, work flows. Onboarding speeds up. Communication improves. Engagement grows. You build not just software—but momentum.

    If you’re ready to stop outsourcing and start building a real team, we’re here to support you. Together, we can tap into Mexico’s top engineering talent and co-create the cultural bridge that makes nearshoring actually work.

    The show must go on: Developing a venue booking app with UPick

    The show must go on: Developing a venue booking app with UPick

    The show must go on: Developing a venue booking app with UPick

    As the year winds down, it’s time to look back and celebrate all of our achievements of 2021, the challenges and the goals we conquered, and the clients whose projects we helped to become reality. 

    This time, let’s take a look at the story behind the development of the UPick app, which had the goal of creating a useful and reliable booking tool for both venues and artists, and how we helped them bring that dream from concept to a product you can use today. Enjoy!

    What goes into making a good idea into reality? For the creators of UPick, it meant finding a reliable team that could build upon their idea, understand the concept completely, and offers the best technical know-how to bring it from paper into every smart device you can imagine. The beginning was simple enough; back in 2020, a couple of friends were looking into an area of opportunity no one else seemed to be exploring yet: what if you could simplify the process to book a show for a venue through an app?

    The show must go on Developing a venue booking app with UPick_2

    The pandemic gave them a wide-open window to implement a solution for an industry that felt the consequences of this crisis deeply. Live shows account for nearly 50% of the music industry’s revenue, so six months into the pandemic, according to the World Economic Forum, shutdowns had already cost venues around the world 10 billion dollars in sponsorships and ticket sales, with no end in sight. 

    But with vaccination rates increasing, it was probably a good time to try and bring shows back, and UPick’s creators thought that an app that offered a quick way to reconnect performers with venues had some fertile ground to grow.

    So, in February 2021 they started considering Scio as a partner, looking for developers who could create this app from scratch, decide the full scope of the final product, and make important decisions about the direction of the platform.

    This was the first time our clients worked with Nearshore developers, and the advantages of having a fully experienced team equipped and ready to roll inside your own time zone became invaluable, keeping the costs of development down without sacrificing quality. 

    Since our clients had never been involved in a project of this size, constant communication to decide the specifics of UPick was critical, going from things like how to monetize the service, to the best hosting platforms to use.

    Typically, development at Scio consists of a 5-step plan designed to arrive at a solution in the most productive way possible. Understanding users and their needs, as well as the objectives and constraints of the app itself, was Step 1. Step 2 involved analyzing the requirements of the app in order to trace a plan for the UX/UI and architecture of the platform. Then, Step 3 is pure Agile Development, up to the official launch, which was Step 4. And after the kick-off, is a matter of support to ensure the quality of the app, giving ongoing maintenance and adding features as a Step 5.

    The Scioneers chosen were a Programming Lead who developed the architecture of the app, a UI designer tasked with creating a comfortable and stylish interface, another one assigned to create a search bar and review functions within the app, and a QA lead who would make sure everything worked perfectly.

    Communication was key. Thanks to daily scrums, a core pillar of our process, we walked our client through the progress of the project, needing nothing more than 15 minutes every day to discuss the changes and challenges that surfaced, as well as what we accomplished, every week.

    The show must go on Developing a venue booking app with UPick_2

    Here, we solved tons of questions born during development, like “how will a band schedule a show?”, “how will refunds work?”, and “how will the venues and bands make deals?” to more technical matters, like choosing a cost-effective hosting solution (AWS in our case), implementing login credentials from Apple, Spotify, and social media (including some necessary workarounds), to selecting the best payment processor. 

    Also, as we briefly mentioned, the business plan of the app had to be revised entirely once the booking process was decided, as Upick could easily be cut out from the deal between venue and performer, and our team took care of that.

    The biggest breakthrough was deciding to make UPick a “progressive application”, where a web portal could function as an app with consistency across devices, like desktops and smartphones, making it as convenient as possible.

    Then features were added, like the ability to share photos, videos, setlists, and even playlists from Spotify, and we had to rethink the way bands could contact venues as our understanding of these deals grew.

    Progress went smoothly until finally reaching our Minimum Viable Product, where one of UPick’s users, whom the client showed a preview, managed to run all of their bands through the platform before it was 100% finished, which not only showcases the talent of our team but also made the customer base excited about the final product.

    All in all, by September the app was ready to be launched, a whole project contained within the chaotic year of 2021, where Scio was able to offer the exact solutions UPick was looking for. A learning experience for both our team and our clients, we celebrate the effectiveness of Nearshore development, which can deliver no matter the circumstances.

    The Key Takeaways:

    • Since communication is crucial to make a product succeed, choose a development option that can communicate with you at the best time possible.
    • It doesn’t matter if the details of your idea haven’t been ironed out yet, a good team will help you with those decisions.
    • Development time of an app, depending on scope, doesn’t have to be too long. It took us around nine months to bring UPick from concept to reality.
    • Some APIs are not very friendly, but there are always workarounds to any obstacle.
    • If better ideas surge during development, it’s good to always voice them. The schedule might need to be reworked, but the final product is always going to be better.
    Agile Project Initiation

    Agile Project Initiation

    If you search on the Internet for «agile project initiation» you are going to find a LOT of templates. People want structure and easy answers, so of course, these simple answers rise to the top of every search. Many (if not most) of the templates offered are pared-down formats from the Project Management Book of Knowledge (PMBOK) Project Initiation Documents (PID). There is nothing basically wrong with the idea of using templates or most of the templates offered, except – they tend to become prescriptive when they should be taken as guidance.

    From the Agile Manifesto: «…we have come to value:

    Working software over comprehensive documentation

    With that in mind, we should ask – why do we document agile projects? Often, the answer is – because it is required (by someone) when in reality the answer should be – to communicate. But again, that simple answer fails to guide us to the necessary outcome:

    • Documentation should be a natural part of agile project initiation, but not the goal. It should proceed from on-going discussions between stakeholders, the product owner and the development team that is developed in Sprint 0, but it must not end there. The conversations and the documentation of outcomes must continue through the lifecycle of the project and the product.
    • strawman

      Initial documentation is just a strawman

      Documents gathered from product owners and key stakeholders are starting points, not final documents. Documents developed by a designated team member to fill out a template are strawmen to be examined, discussed, questioned, and used as a base for the ongoing development of understanding within the entire project team.

    • Living documentation formats should be preferred over static. In smaller projects, it may not be necessary to manage documentation formally, but in most cases using the same concepts as those used for source code management is a valid guideline. Properly maintained, living documentation answers the questions, «when was this decision made? by whom?» and gives a revision history that tells the story when necessary, but only makes it apparent when needed. It needs to include simple artifacts of these discussions – photographs of whiteboards, screenshots of modified mockups, etc. – in preference to notes developed after the fact and out of the sight of the team.
    • During Sprint 0, the aim must be to develop enough trust among the project team members to allow questions and dialog to form the base for a common understanding of those items that are included in most PID templates. If initial documentation is «handed down from on high» to team members without open, trusting discussion – it cannot be internalized by the team and it will not respond to the inevitable changes that will come as discovery and learning continue throughout the project. Agile software development embraces change by allowing the project team to recognize the inconsistencies and discoveries that will come out during development, surface them and deal with their impact through discussion and collaborative negotiation.

    And before we get too far away from it – there are some really strong ideas in the Agile Modeling page on Agile/Lean Documentation. Honestly, though, there is a lot of information in that reference that should really be digested as a part of understanding agile, not as a guideline for a new project. For that purpose, this short piece is a better resource. But, if the outcome of project initiation is not a bunch of filled out PID templates that we can all take back to our cubicles and file away – What is it?

    Agile Project Initiation is All About Communication

    With the ideas we have mentioned in mind, we have to acknowledge that open, trusting, collaborative communication does not happen automatically in an agile project team. There are natural stages that every group will go through before they can have the kind open discussion needed without fearing it will harm relationships and respect. Discussions need to be wider than the project infrastructure, technology, and user stories, without the feeling an individual is stepping over the boundaries by asking about non-functional issues. We might need to know:

    • Does the culture and background of key user profiles matter to the software development team?
    • Does the role of key subject matter experts (SMEs) in product development for an organization make a difference to who needs to be included in discussions?
    • Are we using a Lean Product Development model with the inclusion of stakeholder users as part of Minimum Viable Product (MVP) development?
    • If we are working in a DevOps implementation, how does that change our standard production procedures?

    There are all sorts of questions that are not (and cannot be) included in standard PID templates but could be critical to a specific project. If we don’t discuss our viewpoints and ask questions, we run the risk of assuming we have a common understanding and making decisions based on those assumptions. Every project, every team, every organization is different. In the best case, we can open ourselves up to collaborative discussion by getting the team together, face-to-face during project initiation, for dialog and team building using team games and facilitation with a bias to being productive, explorative, and fun. Using these techniques, we can strengthen the bonds and shared risks necessary to maintain a successful project throughout its lifecycle.

    facetofaceIn cases where face-to-face project initiation is not possible (hopefully more rare than the rule), much can be accomplished with video/voice meetings if they are relatively short and like agile documentation, structured just enough to ensure the meetings reach necessary outcomes and allow for continued direct discussions among stakeholders in the team when needed. There is nothing much worse than sitting in a meeting where a long, passionate discussion between two team members seems to be sucking all the air out of the room – and the meeting outcomes are lost.

    This piece is relatively short and again, more of a guideline than a prescription for agile project initiation, as it should be if we are to «eat our own dog food.» Bottom line:

    • Don’t be afraid to pull out a template when you start your next project, or when you look at it – crumple it up and throw it away so you can start your own list based on what you know and don’t know.
    • What you think you know or don’t know are assumptions and should be treated as such both during project initiation and throughout the project. Only a discussion with open questions between team members can validate ideas and give us a basis for moving forward. And the assumption that is understood as valid today may not be completely correct at another time.
    • Documentation must be limited to what is necessary when it is necessary and maintained throughout the project as living knowledge. Agile documentation should not be the domain of one person or one role. It must be available and dynamic – allowing everyone on the team to contribute when necessary – in a wiki-style rather than as a bunch of locked Word documents.
    • Agile project initiation should focus on both the productive side – bringing together the information needed to organize the project, initialize environments, and the functional user stories needed, as well as the people/team side – developing the understanding, trust, and communication necessary to work collaboratively throughout the project. Ignoring either side is perilous. Assuming the job is done at the end of Sprint 0 is fatal.

    Scio is a vendor of agile, nearshore services for software development projects with our customer base in North America. We can provide project-based or dedicated teams as required for each situation. We would be glad to discuss how our broad base of experience and skills could help you be successful with your next project. Contact us for more information.

    What Do You Need? A Software Development Team? Or an Engineering Team?

    What Do You Need? A Software Development Team? Or an Engineering Team?

    Of course, the first question for anyone looking at this is – what is the difference? Let’s start by saying that we’re not speaking specifically about “product engineering” – although it plays a part in this discussion. We’re actually looking at software development teams broadly, how they work and what they can (and can’t) do for your development efforts.

    What Do You Need? A Software Development Team? Or an Engineering Team?

    Today’s IT environments can be complicated beasts – with unique mixes of internal and remote API’s, web services, service-based components, virtualized infrastructure, and various open source, proprietary and custom applications. Orchestrating this architecture to provide the internal and external business services for an organization is an increasingly critical operational concern. Depending on the size and complexity of the environment, it is likely to be managed by one or more skilled engineers who are focused on the security, standardization, automation, scalability, availability and reliability of IT systems.

    Traditionally, software development teams have been separated from this complexity to some degree by internal standards for application architecture and operation developed by IT. But, as the maturity of IT environments has progressed and agile has become the standard of the tech industry, software development teams are gradually being integrated into combined engineering and engineering teams under DevOps implementations. At this point, there are many different levels of integration between IT engineering and software development teams and if you are considering outsourcing a project – knowing what you are asking for is an important part of your research and decision process.

    So, let’s set up a scenario: You are about to embark on a custom software development project. For the sake of this discussion, let’s assume the application to be developed is strategic and tied to your business model. With so many applications and systems available on the market, if it wasn’t – you would probably just adapt an off-the-shelf application for your purpose. You have a charter and description of the business problems your custom application needs to address, a general budget and executive support. The decision has been made to outsource this project rather than do it in-house.

    With that in mind, let’s insert some different conditions that could make a significant difference in your needs for an outsourced team:

    1. New, but fully-backed venture with basic organizational structure but with no IT engineering beyond office systems automation and help desk.
    2. Existing IT team with legacy experience but little experience with modern infrastructure or IT operation patterns. No dedicated development team or significant custom applications.
    3. Traditional operations, IT and software development but siloed – not integrated other than by operational standards.
    4. An enterprise-level organization with a fully-integrated IT operations and development team in a DevOps style implementation with a significant portfolio of custom applications that are under continuous development and/or maintenance.
    5. A new venture of an existing entity that is expected to operate as a free-standing organization based to a large extent on the services provided by the new application(s) developed during the project.
    There are other complexities we could imagine, but for the most part, they can be addressed as variations of these five scenarios and the basic conditions we set up for this discussion.

    1. The New, Mostly Naked, Venture

    As a new and growing company, there is always (or there should be) pressure to be efficient and do things right from the beginning. If you have a technical leader in your team and/or a significant part of your operation is based on leveraging software applications to provide your services, there is a natural tension – should you focus on your customers, your value proposition and lead your software development at the product level (leaving the actual development to an outsourcing partner), or should you build and control everything in-house? We’ve covered this question before and it is a significant decision – but now, we’re considering a little deeper level of thought. If you are considering an application that will actually support all or a significant part of the services you offer and your revenue – the proper operation and maintenance of that application is a strategic decision.

    Your application must be:

    1. Planned with a set of operational standards in mind.
    2. Scalable, so it can grow along with your business without significant rewrites and basic changes in architecture.
    3. Logically broken into maintainable and extensible modules so it can be enhanced and the value of individual services can increase as they find their place in your portfolio.
    4. Reliable across upgrades, changing loads, and new features through the full product lifecycle.
    5. Economical to operate and maintain based on a solid architecture and the ability to leverage automation across all levels of development, deployment, and maintenance.
    What Do You Need? A Software Development Team? Or an Engineering Team?

    Photoshoot at Cluster 8/1/16

    If you are a new venture and you want to spend your time focusing on your customer, the value of your services, and managing feature-fit, you shouldn’t expect an outsourced development team to simply take on these issues from day one. They may deliver a wonderful application that provides everything you need, except the five points above. Although your customers will be happy, you have just purchased a load of technical debt. Like any loan, it will come due at some point and the longer you wait to deal with these shortcomings – the more expensive they will be to retire.

    So as an entrepreneur with enough problems on your plate, you have a choice (remember – our scenario is that you’re going to outsource this project):

    • Dig in and hire a really competent engineering team that has real world experience in larger operations and understands where you are going. It is going to be expensive, time-consuming and at times – frustrating. You will have more expertise sitting around than you need in the early days, but it is an investment you need to make in lieu of the cost of redoing much of your early work when all your predictions come true. You don’t want to have to operate your business while changing the undercarriage as it speeds down the road. Once you have your engineering team and they understand your business model and where you are headed, they can manage your outsourced development team – but with both sides being new to you it is likely to be a fairly inefficient match in the beginning. Expect six to nine months to hire, train, and begin your project and another period of time integrating your outsourced team (which you also have to select) and your in-house engineering to the point where the combined team can be productive.
    • Find an outsourcing partner that can provide the engineering skills as a part of the team they provide. If you find the right vendor, the team should be scalable with the resources you need, when you need them. The application should be designed with the five points above in mind from the start. If the vendor operates as a partner with your organization, doing that part of the development and operation successfully is part of their value proposition to you. If the outsourced team has broad experience (as they should) they will bring to the table a range of solutions you may not find otherwise. They have worked in the market and delivered solutions in many different situations. Finding the right vendor will not be as quick as it might be if you were only looking for an outsourced development team (there are many pretenders in the field), but in the end, you should be able to get your project running faster, with better efficiency, lower cost, and risk.

    The choice is yours and (of course) there are other factors you may have to consider in your situation – but at a high level, if cost, time-to-market, and lowering distractions from your emerging business are concerning, an outsourced engineering and development team would seem to be a strong option.

    2. Existing IT Team, No Internal Software Development Team & Little or No Current Experience with Custom Apps and Modern Infrastructure

    At first, this would seem to be a simple match for an outsourced development team – and in some cases it may be. But, the lack of current experience with custom application development and modern infrastructure in this situation should be concerning. Companies in this position tend to be service-based, SMB/E organizations with established client bases, regional strength in their market and a strong, competitive need to grow. As we pointed out at the beginning, we are assuming there is a budget for this project and the company is committed to outsourcing but – they have an existing market and they can’t afford to burn their existing customers while they transition to a new or expanded level of services. Because of that limitation, even without considering the eventual operation and maintenance of the new application once it is released, an organization in this position can’t afford to overburden their existing staff with development of a mission-critical, custom application and the operational planning needed while they continue to serve and maintain their existing services. The staff must be involved in the changes but only to the extent that they need to be to be able to take a role as things move forward.

    Again, we come down to some choices:

      Hire one or two technical leads/product and project managers who will take the position of planning the new application, its architecture, and operational requirements while managing the outsourced development team. They will need to be much more experienced than the existing IT team so there will be some initial friction and it will (again) take time, be costly and frustrating. It will take time to get them up to speed and integrated into the team before an outsourced development team can be selected and put to work. The reason to use only one or two resources, in this case, is to hold down costs, but doing so will only make each resource more critical and (probably) more expensive.
    • Hire outside consultants to develop the operational architecture, requirements and train your internal team. Since the internal team is unlikely to be large or have the skills necessary, there will still be a need to hire additional internal resources, but it can be delayed to some extent. The downside of this strategy is that when experienced staff is added eventually, they may or may not agree with the direction put in place by the consultants and there may be a period of realignment and unexpected technical debt. Also, the use of external consultants to manage all or part of the work done by the outsourced development team can create an “arms length” relationship with the development team that can make it difficult to have the level of collaboration and trust you need to avoid communication problems, especially with agile development.
    • Find an outsourcing partner that can provide the engineering talent as a part them team they provide. If you find the right vendor, the team should be scalable with the resources you need, when you need them. If the outsourced team has broad experience (as they should) they will bring to the table a range of solutions you may not find otherwise. They have worked in the market and delivered solutions in many different situations. If you want to transition the outsourced team out at some point, you will still need to hire additional staff for operations and maintenance of your new applications, but you should be able to have them work in parallel with your outsourced team during the transition and lower the burden significantly.

    Any of the three options could be successful but if you find the right outsourcing vendor, it would be a faster, less costly and less risky route to get your project going. But, of course, it depends on finding an outsourcing vendor with the option to include engineering skills in their team and to have a flexible approach to providing the team you need.

    3. Siloed Operations, IT & Software Development Teams

    This scenario lends itself to slightly larger and more technically-based operations than we discussed in the second scenario. This is the type of organization we expect to find in an established ISV with a strong client list in a specific vertical. Their operations are usually as they have been for a decade or more. Their IT staff is established and has a strong operational base. Their software development team is well-versed in their existing applications, the technologies they use and the customer base they work with. If they didn’t have to step out of that box to build this new application, we can easily assume they wouldn’t need to outsource and their engineering is just fine for what they are doing today.

    What Do You Need? A Software Development Team? Or an Engineering Team?But that is the rub. We’re examining a scenario where they need to extend themselves into new technologies and possibly change their operations significantly. And because we’re assuming their teams are informal, separate silos – we’re also assuming they know about the higher efficiencies they could achieve if they began to shift to a DevOps methodology but – again, like our second scenario, they have existing customers and products/services in the field to maintain and support. Like most companies in this situation, their backlog of feature requests for their existing software is just what they can handle at the moment. Adding another layer of work would just mean something would have to give. An outsourced development team, in this case, makes sense and this organization is likely to have customer-facing product development well-in-hand. But, what they don’t have is a scalable organization to match the importance of the project and a broad understanding of new technologies and architectures they need to consider to streamline their organization.

    So, in this case, an outsourcing vendor who can bring in engineering experience as a part of their team skill and experience, a flexible, scalable team makeup and willingness to work in a partner role to help their existing team rethink and realign their operations could be a real asset. It is risky to try to do both at once with the same team, but if both teams have regular work to do and can collaborate to adapt operations over time it can be an opportunity that would be nearly impossible any other way. Again, the critical step is to have the skilled resources available as an integrated part of the team who can lead the effort to plan architecture and operations before development gets underway and you find that serious adjustment is needed. There are risks in this scenario, certainly, but there is also an upside to making changes in parallel with everyone onboard the organizational development and change initiative.

    4. Mature Enterprise with Integrated DevOps style IT and Software Development

    Again, we’ve moved the situation up the scale a bit but we’re still committed to outsourcing and we’re still considering what type of a team we need. In this case, the internal team has an implementation of DevOps and even if it is not complete, it is moving forward with staff support and commitment. Like scenarios two and three, our existing team has a number of custom applications in production and knows what it is doing when it comes to operations and development. We can assume they are fully engaged and the time allotted to this project is short, or they would simply hire as needed and do the project internally.

    Since this organization has a DevOps implementation, there is already an assumption that new development resources will have experience in both development and systems architecture for continuous development and maintenance. Bringing on a team that doesn’t have that type of cross-functional experience and mindset would be a serious problem. They simply wouldn’t be able to hold up their end. In this case, if the project is to be outsourced, the incoming team must be able to handle both engineering and agile software development if they are going to hold up their end and integrate with the larger team successfully.

    5. Spin Out/Off Venture with Software-Based Service

    You might think this scenario would be a lot like the first, but spin-out ventures tend to be better positioned and planned simply because they usually come from organizations with a strong market position and goals that are carefully evaluated before the venture is started. In most cases, staff members come from the “mother ship” with a background in product development and deep understanding of the market they are going into. But, because the loss of technical resources inside the home organization could seriously impact production there for a prolonged period, they rarely pull out more than a few senior IT resources. With that in mind, their team is usually fully aware of current technologies and methodologies, even when they may come from an organization that culturally has not be able to move to them as quickly as they might wish.

    A spin-out gives this core team an opportunity to move in fresh directions with less organizational baggage and legacy overhead. So, in some ways, they may look like scenario two with little IT in the beginning – but the big difference is they have experience in the product development side of custom software and how supporting systems can be orchestrated. They are better positioned to evaluate partners and decide on the roles they want in-house versus outsourced. Since we said at the beginning that all scenarios would be based on a decision to outsource – the question is still, “Do we just need an outsourced software development team or do we also need an integrated engineering component?”

    The decision comes down to how much of the burden the mother organization wants to continue to shoulder and how expensive the “charge-backs” would be if they did. Leaders of spin-outs usually have strong stock incentives to keep costs in line and move relatively quickly to prove their direction is worthy of the risk. If using existing services inside their home company would create complications, slow product development, and increase costs – they will think twice about that direction. Since we have specified that they have already decided to outsource this project, we can assume they are not looking to spend any time taking on problems that do not get their services and products into the market. But that said, we know the IT resources in the venture are limited and if they want to go to a modern continuous release methodology so they can incrementally improve and tune their applications, they will need to have flexible, integrated teams of engineers and developers from the beginning so that their applications are architecturally and operationally sound from the beginning.

    Bottom Line

    The bottom line here is that software development is shifting away from internally-focused product development,  siloed enterprise teams and monolithic applications to incremental release patterns, agile organizations, and customer-focused lean product development. Not everyone is there now. There are many different ways to implement change. But, all of these organizations have chosen to take on custom application development for a strategic initiative, the opportunity now is to do it better with an eye toward the future of their organization. This is just one small part of the change they seek, but it is an important one to consider. So, yes – an outsourced team that brings a range of engineering skills and experience along with their development background can be a big advantage for any of these situations, with a vendor who will operate as a partner in the organization.

    Scio provides nearshore, outsourced software development and flexible teams with a range of software development and engineering skills based on our experience in many verticals and situations. Our teams can have flexible roles and their bias is toward agile methodologies broadly. If you have a project in mind, please contact us to discuss how our unique blend of skills and experience can benefit your organization. We would be happy to take the time to listen and provide insight into how we could partner for success.