5 Things to Consider When Choosing a Software Development CompanySoftware development can be a complex process. Unlike building a home where stages such as foundations / walls / roofing each appear before your very eyes, with software development, you often don’t see anything meaningful until near the very end when developers assemble all the pieces into a fully functioning system. Much has been written about how to choose a software development service provider. Being in the business, we find some of this advice is of value and some is confusing, if not outright misleading. We won’t unpack what is and isn’t misleading as we may be biased. However, based on our experience developing and deploying thousands of applications across a range of industries and organisations of wide ranging sizes, we believe the 5 issues below to be important additions missing from the existing literature.
1. Co Creating your product vs. Capturing requirementsWe find many of the customers engaging us to undertake software projects to be efficiency and effectiveness conscious line managers or innovation oriented executives / business owners. In a lot of cases, our customers aren’t technical IT people and are time poor. As a result, while they may have clear ideas about what they need, they often rely on our technical expertise and understanding of technology platforms to flesh out their ideas, elaborate on them and marry them to what’s possible. We see the initial phase as not just one of capturing and documenting customer requirements but as a creative process whereby we combine our understanding of what’s technically possible with the customer’s understanding of their business processes and their customer needs to co create a product within the customer’s budget that we can both be proud of.
An example of this is a recent financial services organisation that originally engaged us to make some upgrades to a Microsoft Access database used to manage the filling out and submission of forms to a range of financial institutions on behalf of clients. Once we understood the customer’s objectives and budget, we explained the automation possibilities to remove double handling / manual errors, the security risks and mitigations strategies of different technology platforms and the agility possibilities of going cloud. We then worked together to co create a Microsoft Access prototype of the finished product and trialled it in a live environment in order for the customer to make a decision on whether to make a subsequent cloud application investment. When a potential acquirer saw the prototype application in use, they made an acquisition offer and made it contingent on completing the cloud application investment. The resultant breakthrough product would not have been possible without combining the client’s industry and operational process expertise with our technical and technology platform expertise in an authentic cocreation effort; that is, if we had seen our role as merely documenting requirements and regurgitating what the customer wanted rather than combining our expertise to co create something that exceeded their expectations.
In fact we believe this to be the core source of value in most software development engagements, if not all. It is a missed opportunity to engage a company that sees themselves as merely capturing and regurgitating your requirements rather than one that sees themselves as a proactive co creation partner.