appssemble
ServicesBlogCase StudiesAboutContact
[email protected]
CompanyServicesCase StudiesBlogContact
Offices
New York1740 Broadway, 15th Floor, 10019
LondonKemp House, 160 City Road, EC1V 2NX
Cluj-NapocaBlvd. 21 Decembrie 1989, 95-97
SocialLinkedInGitHub
© 2026 appssemble. All rights reserved.
Privacy PolicyCookie PolicyJobsGlossary
Blog/technology/Article

Reimagining Software Development Services for SMEs: Breaking Free from Broken Models

January 24, 2024technology5 min read
Reimagining Software Development Services for SMEs: Breaking Free from Broken Models

In today's business landscape, companies, regardless of size or industry, often turn to external assistance to develop their software products. This typically involves engaging software outsourcing companies. 


The motivations for seeking such help vary, ranging from a lack of in-house technical expertise to cost reduction, the need for rapid delivery, or a desire to avoid coordinating with multiple entities for different project components (design, development, testing, etc.).


In a significant number of cases, these providers don't charge for the end product, instead, they bill based on headcounts or hours worked. This billing model is driven by the complexity of projects or undefined requirements.


This leads to negative outcomes for the client, especially for small and medium-sized companies.



Why typical software outsourcing is broken?





Opposing Interests: Provider vs. Client


When working on a time and material basis, the interests of the provider are not in sync with the interests of the client.



The client's interests are:


  • Develop a product, that fulfills all the functional and non-functional requirements as fast as possible;
  • Do it as cheaply as possible (without hindering the quality)
  • Have someone being accountable for the good functioning of the developed solution;
  • Implement the easiest, most efficient solution (cost, time, and complexity wise);
  • Spend the minimum amount of time managing the project;



While the outsourcing agency (provider) interests are:


  • Have a long-term contract with the client, that spans many months or years;
  • Implement complex solutions that require more staff to build and maintain;
  • Increase the headcount as much as possible to get more revenue (and complexity);
  • Be as less accountable as possible for the overall success of the project;



Working under this model essentially means renting people for the job. The provider has little incentive to ensure the right fit for the client's needs or implement the most efficient solution. Consequently, proposed solutions are often complex, requiring more time, personnel, and maintenance. 

This strategy justifies increasing the headcounts and extending the deadlines.

Furthermore, clients handle project management, being accountable for any shortcomings. Additionally, software agencies tend to "borrow" more expensive personnel. 



Coordonation and communication


In this model, clients actively participate in daily aspects of product development, including team communication, task assignments, and progress tracking.


While this hands-on approach can make clients feel more in control, it comes with a significant drawback. In software outsourcing, working in 2-week Agile sprints is the norm. In this way of working only 6 out of 10 days are dedicated to actual product development. The remaining time is eaten up by synchronization meetings and fragmented intervals. This means the client, despite being deeply involved daily, is only getting a 60% return on their investment.


When considering the time needed to manage the outsourcing team, the overall results are less than optimal. Despite the apparent advantages of frequent interaction, the model's efficiency takes a hit due to the substantial time spent on constant coordination.





Why is the time and materials model popular in software outsourcing?



This approach and work methodology may find a fit within larger enterprises. Their projects typically involve revamping existing systems, making enhancements, or frequently maintaining running legacy products.

Even in new product development scenarios, their processes and slow decision-making significantly deter delivery speed.

Choosing a time and materials approach gives these enterprises a false sense of project control. This leads them to deeper involvement in day-to-day development operations.

Here's the catch — software outsourcing companies often replicate this approach across the board, catering to clients of all sizes, whether big or small. 

By doing this, they transform from technology-focused entities to resembling human resource agencies. Their primary objective shifts from delivering outstanding software products to maximizing headcount sales.

This paradigm may align with the needs of large enterprises, but it becomes counterproductive for the agility required by small and medium-sized companies and for building products in general.




What is the solution?



Let's step back and recognize what clients truly want: fast delivery of products meeting both functional and non-functional requirements, that avoid unnecessary complexity, and are aligned with their roadmap.


Instead of compensating outsourcing companies based on headcounts and billable hours, a more effective approach is to pay for the actual software products delivered. This shift tackles many of the previous challenges.


By using this strategy, the product costs are clearly stated and delivery dates are adhered to. Additionally, it motivates the software agency to deliver more efficient, and less complex solutions, quicker.


Benefits of this approach



The burden of project accountability shifts from the client to the provider. 


Clients are tasked only with specifying requirements and validating the result. They are no longer burdened with staffing issues, day-to-day project management, or decisions regarding the team's size to meet agreed deadlines.


A frequently overlooked benefit of this approach is that software agencies are motivated to deploy their most experienced personnel, usually seniors, to expedite project delivery and move on swiftly to the next challenge. 


This results in a better-architectured product, fewer bugs, and an overall better, more stable product.



Now a sensible thing to think and to worry about, is: what if you don't have all the requirements of the product? What happens then, can this approach still be implemented?



The best thing to do is start small (some part of the product -- for instance a login flow, something that's clear) and expand from there. The selected software development partner should understand the product roadmap, its goals, and key functional and non-functional requirements. This ensures the built solution is flexible and extensible to meet these needs.


This approach prompts clients to consider budget allocations for specific features. This enables better decisions on how much they want to invest in a particular feature and whether it is truly necessary. 


Additionally, it offers a cost-effective way to evaluate a provider's working style and service quality before committing to a long-term partnership. 


This principle holds even, when the product is fully specified with all requirements defined.

 



To understand how we build better software faster and with less hassle for our clients, explore more about our process and approach.

More from the blog
All posts