Does outsourcing dev/design work for tech companies? — Twiga Foods Case Study
As a tech or tech-enabled company, what would you do if you needed senior design or developer resources quickly? Sometime around May 2018, Caine Wanjau (Twiga’s CTO), Jacob Chencha (Software Project Manager)and I (Kipkorir Kirui, Director at iHub Consulting) met to discuss this specific challenge.
About Twiga Foods
Twiga Foods is a startup that links farmers and vendors to fair, trusted, modern markets by sourcing quality produce from Kenyan farmers, and delivering to vendors in urban areas. To achieve this, they utilize technology in every aspect of the supply chain. Consequently, Twiga has an internal developer and design team that supports different components of the platform.
iHub Software Consulting (iSC) offers design thinking and software development services to organizations building digital products for African markets. We work with startups, corporates, and NGOs across Africa to help them realize the value of human-centered design as a problem-solving approach and to leverage the power of technology to solve some of their most pressing problems. iSC’s services include, but are not restricted to, user experience research, design thinking facilitation, service design, and software development. Companies we have worked with include Open Society Foundation, PCI Global, Bill & Melinda Gates Foundation, Barclays Bank, Cooperative Bank, Kenya Wildlife Service, and Linkoping University, PharmAccess Foundation, Mark’s Rate, Epic Africa, Adeso, Twiga Foods, and World Vision to name a few.
As a high-growth startup, Twiga came to iSC with a specific request — help us bridge design and development capacity. Traditionally, most tech companies prefer to build internal capacity instead of working with external consultants. However, seeing how long it takes to recruit senior design and engineering talent in the Kenyan tech ecosystem, this strategy will not work if you need these types of resources on short notice. Recruiting internal resources doesn’t also work well if you have cycles of high resource demand followed by relatively lower resource demand.
The typical consulting model employed by consulting companies is a project-based approach. It is a pretty straightforward approach as you simply estimate the effort and time it will take to complete a project and allocate the right resources. Another common model is the developer/designer placement model where the consulting firm places a resource in the client’s team. The resource is managed 100% by the client and is technically part of the client’s team. There are two key challenges developers/designers face with the traditional placement model:
Culture fit — most techies join a specific organization because of the org’s culture. Most times, the client’s culture is very different from the consulting firm’s culture. You sold your culture to the resource and now they are technically not part of your team anymore
Detachment from the rest of the team — typically placement models will have a resource working with the client for more than a year. During this period, the resource will be completely detached from the rest of your team. At some point, he/she will feel like they are no longer part of your team
At iSC, we have been experimenting with a model that addresses the issues outlined above and still meets the objectives of our clients. Lazily named ‘Resource for Hire’, from a contracting perspective, it works as follows:
The client identifies a resource gap and an estimate of the time commitment they will invest in to plug the gap using iSC’s team.
In situations where iSC doesn’t have the in-house capacity, we tap into our pool of vetted freelancers. If the freelancer hasn’t worked with us before, he/she will be paired with one of our internal resources for quality control
Once the agreement is in place with the client, the identified resource(s) is set up. To tackle the issues of culture and detachment, iSC doesn’t do 100% placement. We leave enough hours for the resource to be with the rest of our team
On a day-to-day basis, it works as follows:
Planning and task allocation — this is done by the client and not managed by the iSC team. The idea is to embed the iSC resource in the client’s team
Tracking time on the project — to ensure transparency and build trust, we track all hours spent on the project and share timesheets based on agreed intervals. We currently use a time tracking software called Tickspot
Unspent hours — 25% of unspent hours every month spills over to the next and expire after a month. This encourages the client to utilize the resource but at the same time account for months with low demand
Hours beyond allocated time — occasionally, a client might want to use more than the allocated time or a task in a month takes longer than the allocated time. This is agreed upon before work is done so as not to negatively affect resource planning on the client’s side
Work location— the resource splits his/her time between our office, the client’s office, and our work-from-anywhere days depending on what needs to be accomplished. This structure allows the placed resource to maintain the culture we have at iSC and still have adequate interaction with the client’s team.
For Twiga Foods, iSC allocated one senior back-end engineer and one senior front-end engineer. Each was allocated 80 hours a month and the initial engagement was for 6 months.
Outcomes (so far)
Our work with Twiga is still ongoing. Below are some of the highlights from the engagement so far. The work was done in collaboration with the rest of the Twiga Foods tech team.
DevOps set up — ensuring Twiga’s infrastructure is up to date and developers can be on-boarded faster
M-commerce prototyping — our front-end designer took the lead during the prototyping and deployment of Soko Yetu — Twiga’s m-commerce platform — https://shop.twiga.ke/
Day-to-day design and development support — the two resources have provided support across different components of Twiga Food’s platform. The allocation is decided upon during sprint planning
We have been working with Twiga for about a year now and along the way, we have learned valuable lessons that have kept the partnership intact.
Trust is the most critical element for success — you need to ensure that the client is confident that the hours they bought are being used on their project. We did this by tracking time on the project, regular check-ins, and most importantly being true to our word
Culture can make or break the engagement — it helps when you have a similar working style as you are more likely to gel. Twiga uses agile software development practices. We do so too
Being intentional about check-ins reduces conflicts — on rare occasions, there will be misunderstandings between you and the client. In the beginning, we had monthly check-ins to review different aspects of our engagements. As we got to know each other more, the check-ins were reduced but never eliminated entirely
Longer-term engagements are fruitful — it takes time to learn how best to work with each other and to get fully on-boarded so it is advisable to do long-term engagements
It has been an exciting time working with the great team at Twiga and we hope to do more with them going forward. The quote below from Caine Wanjau sums it up nicely.
We engaged iHub Software Consulting to provide us with consultants to work on various teams in our technology department. As a fast-growing company having a high rate of product development, we wanted to ensure that we worked with experienced engineers that would produce quality work in a timely manner, and they were able to execute this for us — Caine Wanjau, CTO, Twiga Foods
Interested in learning more about our services and how you can engage iHub Consulting? Check out our website or drop us an email kirui.[at].ihub.co.ke.