Breaking Down the First 2 Months of Your Software Development Partnership

Let’s paint a quick scenario. 

Your company is past the first phase of its growth. You have gotten through that first period of uncertainty and are building a head of steam. You might have received funding or your revenue is exceeding expectations. Whatever the case, you are eager to keep the momentum going, take on new projects, grow your capabilities, and your software development team. 

But building an in-house development team comes with its own challenges. In order to get your product to market quicker and to gain access to a larger pool of talent (as well as many other benefits besides) you decide to outsource your software projects and work with an experienced outsourced software development partner such as Keeper Solutions. (You can learn more about how to choose the right partner, here.)

But then, what happens? 

What happens when you make the decision to work with an outsourced partner? What do the first few days, weeks and months actually look like? This is a question we get asked a lot and in this blog post, we are going to break down the initial steps.

Phase 1 – Consulting or Design Sprint

With many engagements, there is an initial phase of discovery and consultation. This, ideally, takes the form of a design sprint. This is a framework used to map out challenges, explore solutions, decide on best approaches, and then create a prototype and test it. Our approach can be boiled down to five simple words – map, sketch, decide, prototype, and test. And we make sure to consider the user every step of the way.

The design sprint usually takes between 2 to 6 weeks to complete, depending on the scale and level of complexity of the project. The design sprint is a workshop-based process, led by an experienced UX designer. It involves a small interdisciplinary team of UX designers, software architects, engineers and subject matter experts working together with the client. The client takes an active part in this process, describing current products, plans and what they are trying to achieve.

During the design sprint, we create user profiles (needs, wants, desires, fears of the product user) and the user journey, which describes the journey that a product takes a user on in order to complete a task or create value. 

By the end of the design sprint, the UX designer is in a position to map out a UX/UI design which details the user journey and what is required to build the product. Or, in other words, they put together a carefully thought out, well documented prototype of a solution we think will work best.

The design sprint acts as a planning tool but it also helps our team to better understand the client, their company customers and their needs. It also allows us to better understand their technical capabilities and what type of expertise will be required to bring the project to fruition. Finally, it allows both parties to get to know one another and become a single, cooperative unit.

Note: There are three main scenarios in which a company engages with an outsourced development partner. 1. To build a new software product. 2. To modernize an existing product. 3. To change providers and move from an offshore provider to a different outsourced partner. In all three scenarios, we recommend starting with a design sprint (or a consulting sprint focused on transformation AS IS -> TO BE”)  and building a plan from there. Or, in scenario 2 we tend to go for a consulting sprint focused on transformation ‘AS-IS TO-BE’. Simply put, this focuses on where your processes are currently and where they need to be.

Phase 2 – Pivoting to Software Development as a Service

Once the design sprint is finished, our architect is able to recommend a technical architecture. Within this technical architecture, the architect teases out the scale of the project, what devices the product will be designed for, be it web or mobile, and what integrations are required in the back-end. The technical architect also provides an estimation of the costs and how long it will take to build the product. 

One of the key advantages of a design sprint is that it allows us to get to know the company and gain a clear understanding of its current setup. Because of this, we can then lay out exactly what technical capabilities you require and what roles you’ll need to fill. After gaining this knowledge, we have a much better idea of how many back-end developers, front-end developers and QA engineers will be needed as well as Dev-Ops, test automation and other specialist areas. Furthermore, during the Design Sprint, Keeper may use the time to assemble the development team so there can be a seamless pivot from design to development once the client is happy with the product design

After (or during) the design sprint we may also put together a SDaaS (Software Development as a Service) proposal, which sets out the challenge and solution, and specifies the size and scope of development capability required to build the product in line with the client’s budget. An SDaaS agreement usually involves a number of our developers becoming a part of your extended team. This is where the true meaning of ‘partnership’ and the need to build strong relationships really becomes apparent.  

Our proposal includes a service description which outlines:

                      • The challenge that you are trying to overcome and the proposed solution. 
                      • The approach we will take, with a breakdown of monthly tasks and objectives. 
                      • The number of developers needed.  
                      • The agreed upon channels of communication.
                      • The roles and responsibilities of all parties involved.

Note:  We always recommend that QA engineers be included in the development process as early as possible. When a QA gets involved early in the process, there will be fewer bugs and surprises down the line. We firmly believe that quality assurance shouldn’t just follow development. It should be at the heart of it.

Phase 3 – Bedding Down Development and Getting to Steady State 

Once everything has been agreed upon and contracts have been signed, the service goes into the delivery stage and our service delivery manager takes on a more active role. Working with the talent team, our service delivery manager allocates personnel and hires new developers if required. It’s often the case that our developers are reallocated from an existing project that no longer requires large teams. 

This is the nature of outsourced software development and one of the key benefits of working with an outsourced development partner. Often our developers work on a particular project for a period of time and get assigned to another project when needed. This allows companies we work with to scale up resources during busy periods and then scale down resources when no longer needed. This is in contrast with hiring in-house, where companies are often left with bloated teams and a strain on resources.  

At this point of the project a number of things have happened:

                      • The design sprint is complete and a put has been put in place.
                      • Both sides have agreed on a service description and contracts have been signed.
                      • Gaps in technical capabilities have been spotted and filled.
                      • The company and software outsourcing partner know their roles and responsibilities.
                      • Channels of communications have been agreed be they email, Slack or a preferred messaging service. 
                      • Cadence of communication is set with short daily stand-ups and longer project updates between team leads.
                      • A sprint schedule is put in place and a project is set for success!

We hope this gives you a taste of what it is like to work with an experienced outsourced software development partner. If you have a project in mind and want to work with an outsourcing partner, we’d love to hear from you.

Get in touch today and speak to one of our team.