5 Things to Consider When Choosing a Software Development Company
Software 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 requirements
We 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.
2. Innovativeness / Thought Leadership
We believe a good software development company needs to be forward thinking with regard to the intersection of technology and business. For instance they should be clear about the emerging trends of cloud, mobility, social media, big data, analytic and IoT areas. They should also be clear on the implications of these trends for your your business and the solution you’ve engaged them to deliver. This has an impact on the ongoing relevance and competitive edge you derive from your software investment. Unfortunately the line between great talkers and real substance requires your good judgement.
3. Diversity of Client Base and software solutions
A key advantage of a software development company is that they can leverage best practices from different industries to optimise your product and your business operations. Within reason, a diverse customer base (i.e. a range of industries, business sizes, geographies) likely means broad domain expertise and experience with a diverse range of technology applications and platforms. The greater this expertise and experience is the more it can be leveraged to co create a breakthrough product.
4. Strategic Partners
A lot of IT companies specialise in particular services (e.g. in hardware provision, hardware support, application development, application support etc.). Even within software development companies there is specialisation (e.g. in interface design, back end development, implementation, integration etc.). But in many situations, customers will have a project that requires broad input (e.g. hardware, software, interface design etc.). It can be a challenge if your development company just does the software and leaves you to your devices. We believe a good software development company should have service delivery partners that it can leverage to ensure the seamless delivery of an integrated product. An example of this is a recent engagement with a protective clothing company that required us to design and deploy a cloud based inventory management system as well as the IoT part of connecting RFID inventory tracking devices to their cloud based application. The project also required IT hardware acquisition, installation and management and mobile device acquisition, installation and integration. Through our partnership with Pinnacle Networks (a leading hardware / managed services provider) and One Solution IT (a leading mobile solutions provider), the client was able to receive an integrated solution without the coordination stress and without the blame games that can often occur with different service providers.
5. Hosting and Support approach
Software applications often require technical and administrative support after implementation. This usually includes debugging (e.g. due to changes in your IT environment), integration with new systems and platforms within your organisation and ongoing improvement of your software as new improvement ideas emerge. We believe a good software development company should have support plans catered to different project sizes and organisation circumstances as well as the reserve free capacity to respond to customer needs in a timely manner where no priority support agreement is in place. Without this, other software development companies may not see incremental change work as worth their time when you approach them, yet these can significantly expand your operational efficiency and effectiveness. Similarly, they should not leave you to your devices with regard to hosting / application monitoring and automatic backups. They should provide flexible plans to ensure that your applications can be hosted in a secure environment that it is constantly monitored for vulnerabilities / functionality issues in real – time and that daily backups occur.