You are here
Software Development Outsourcing
Know the basics for choosing the best-fit development partner
Outsourcing the development of your new business application to the right custom software development partner is critical to success. While much has been written on the keys to delivering a successful software development project, little content has focused on the important basics of partner selection. Get the basics wrong, and you could be doomed before you start.
This article will provide insights to identifying the best type of software development partner for constructing enterprise business and mobile applications. Specifically, we’ll explore how a potential development partner’s business model, focus on greenfield vs maintenance development and types of developers can impact your level of success.
Business Model Speaks Volumes
Your development partner’s business model can significantly impact the outcome of your project and the long-term viability of your application and investment. By evaluating their business model, you’ll understand what’s important to them and if their business interests and approach closely align with yours. The three most prominent development outsourcing business models are:
01: Full time onshore.
Companies that staff their projects with full-time employees are fully committed to the design and build space in a major way. They provide a turnkey service staffed with designers, architects, developers and DBAs who are used to collaborating as a team. This creates operational efficiencies that reduce timelines and total cost of ownership (TCO).
This business model invests heavily in the skillsets, processes and infrastructure necessary to consistently produce successful outcomes. Because custom software development is a core part of their business, they live and die by their reputation. This acts as a powerful incentive to produce quality software and to protect the long-term interests of their clients.
02: Temporary/1099 contractors onshore.
It’s common for companies that staff their projects with temporary developers to offer software development as a peripheral service line. They, unlike the employee staffed model, staff up and down based on the projects they sell. This adds additional variables and unknowns to an already complex process often resulting in unpredictable disruptions and quality issues.
Team turnover can also be an issue with this model. These companies aren’t structured to provide ongoing support. Thus, it’s possible many different developers will be assigned to maintain your application based on availability alone. Their unfamiliarity with the application can negatively impact performance.
The allure of low-cost, off-shore software development is a powerful temptation. Unfortunately, the perception of low-cost development translates into a false economy for everyone except large organizations. While offshore resources offer a good fit for large applications in need of ongoing support, the model tends to breakdown when it comes to developing new enterprise applications.
The iterative process of designing and developing an application from scratch requires constant communication and consensus between you and your partner. This becomes exponentially more difficult when introducing massive time zone differences, language challenges and most importantly, cultural differences. Overcoming these additional challenges requires a level of process maturity and dev ops sophistication that midsize companies rarely possess.
All three business models can produce quality software that enables you to achieve your business goals. The critical difference separating the three is their ability to consistently deliver quality results. Not surprisingly, those partners committed to full lifecycle, custom software development as a core business offering prove to be the most consistent in delivering successful outcomes for their clients.
Greenfield vs Maintenance Development
There are distinctive differences between software development platforms. However, the specific technology you choose is ultimately less important than the type of experience your development partner possesses. When building an entirely new application, you should seek out a greenfield development company rather than one that focuses on maintaining and extending existing applications. The difference in complexity between the two types of experience is significant, as explained below.
01: Greenfield development.
Greenfield developers design and build a software application from scratch. This entails a complex process that requires in-depth analysis and forethought. The goal being to design an architecture and database model that achieves the short and long-term goals of the business—while enabling maximum reliability, scalability and extensibility.
Achieving the architecture benefits requires quality code development, enabling every layer of the application to function in harmony—from authentication to security, user experience to database calls, and more. Greenfield development typically takes much longer and by nature, is higher risk than maintenance development.
02: Maintenance development.
Maintenance development occurs when an existing application is extended and/or integrated with another application. This is far less complex than greenfield development because the existing application’s architecture dictates how a new feature, upgrade or integration link needs to be developed. Consequently, these types of projects are shorter and lower risk by nature. Given the number of existing applications in the world today, the number of maintenance developers far exceeds those capable of greenfield development.
Determining if your potential development partner is more skilled at greenfield or maintenance development isn’t always easy. The best way to ensure the partner you select has the right level of greenfield experience is to do a bit of detective work. Seek out evidence of their greenfield experience across their website, case studies and client references. Make sure they have a core competency for developing applications similar in complexity to the one you want to build.
Types of Developers
Developers tend to be informally classified by the functional areas of an application and the types of applications they work on. It’s important that your development partner staff your project with the right mix of skills to achieve success. While there are dozens of different classifications, the most common and relevant for successfully building an enterprise business application can be found below.
01: Web developer/front end developer.
These types of developers specialize in building the user interface (UI) and user experience (UX) for websites and the front end of web applications. They commonly work with content management systems (CMS), such as WordPress, Drupal and other software packages. This is considered light development and can be learned and mastered much quicker than back end development.
02: Mobile developer.
Mobile developers create applications that operate on smartphones and tablets and, run on iOS and Android operating systems. Cross-platform mobile development technology has enabled many full stack developers to build and maintain mobile apps without being experts in Objective-C (iOS) and Java (Android).
03: Database administrator (DBA).
DBA’s are responsible for database design, security, and database performance. Tasks include maintaining the data dictionary, monitoring performance, and enforcing organizational standards and security.
04: Back end developer.
While front end developers optimize human interactions with an application, back end developers create the core computing logic that enables the application to function and respond to requests from the front end. Back end development is commonly referred to as hardcore development due to the significant computer science involved.
05: Full stack developer.
Full stack developers do both front end and back end development and are capable of creating fully functioning business web applications by themselves.
Maximizing user adoption and performance of your new application will require at a minimum, a team with expertise in both front end and back end development and a DBA for large applications. Often small to midsize applications can be successful developed with one or more back end developers alone.
Unlike with greenfield vs maintenance development, most business application developers are self-aware and conservative regarding their value relative to the functional areas of an application they work on. Still, it’s important to validate a developer’s areas of expertise by discussing examples of their past work and talking to their references.
The correlation between selecting the right outsourced software development partner and the success of your new business application seems obvious. But making that selection can be extremely challenging given the variety of software development skills and experience available in the marketplace. Understanding the basics for evaluating your outsource partner can help you qualify candidates and choose wisely.
About the Author(s)
Greg Deitch, President and Principal - Trabon Solutions