Very few enterprise development projects are completed entirely in-house.
A client recently asked about this, and it’s a common enough question that it warrants a brief answer. Two factors have changed the face of enterprise development. The first is economic, the second is technical.
First: About 10-12 years ago, as the economy forced companies to downsize, companies turned more to outsourcing. This, in turn, created a lot of smaller companies who exclusively provide services to large companies and government agencies. For example, I know the founder and the president at Interknowlogy well, and while they can’t divulge their entire client list, they’re a comparatively small company (<100 employees) who do enterprise development exclusively (see this page for some examples, like Merck). There are many other examples, of course.
How do we know this?
Well, it’s something that numbers don’t necessarily tell. We have to conduct qualitative research (interviews) to find out the story behind the numbers. For example, in September I talked to about 50 different developers worldwide about how they develop commerce apps, and what they use to do so. To choose one respondent as an example, he works for a small American division of a large multinational – and they do software R&D for large manufacturing lines. They develop the working protoypes with a very high purchase autonomy (up to around $100K) and then outsource the development of the final working software to accompany their prototypes, which allows them to develop many apps at the same time, both those designed to speed their own company’s work and those designed for ultimate sale to customers.
The second factor, as I mentioned, is technical (although it, too, is driven by business needs). (I discussed this briefly in this blog post.) Again, the ultimate nature of enterprise development has changed. No longer is most enterprise development for exclusive, in-house use. Even software developed for core business processes of a given company is often assembled using access to both private and public information and services via APIs. And that in-house software is accessed in most cases by trusted partners, providers and suppliers. Here’s where we see enterprise developers less creating solutions from whole cloth as they are assembling and customizing their solutions from available services, adding their unique business process needs.
As an adjunct point here, the complexity of technology has made it difficult for any company, regardless of size, to develop apps for all of the platforms their users demand (whether those users are in house, partners, clients or customers). Most contract with trusted partners – again, smaller companies who are doing “enterprise development” – to create those apps. A great example is from our recent mobile study, where most companies use partners to develop native mobile apps for many platforms, keeping the core business logic in house. Here’s an example I’m purposely obfuscating to protect the anonymity of a dev I talked to in September. They create their core business logic in house and keep that proprietary. But the data is available via a private API, and their partners/contract developers build apps tailored for various platforms that match their brand standards. This way the core enterprise team doesn’t have to try to be expert in all of the new technologies, trends, and so forth – they just have to have partners do that for them.
So: you don’t have to be employed by the company to be an enterprise developer. That’s how it was last century, but that’s not how it is today.