by Luke Edwards – Technical Solutions Manager
As Product Owners, we tend to focus on the shiny and overlook the mundane – of course our priority is going to be that best experience for end users. However, recommended as well is a working knowledge of the technology involved to answer this key question: “What can be done to best guarantee the code is going to be high quality and support my product both now and in the future?” The following points shall demonstrate the benefits that nearshore teams offer in terms of quality and cost-effectiveness for your service.
Development teams have significantly raised the bar over the past 10+ years. Previously, the barrier of entry costs for most development stacks was a non-starter for all but high premium software providers. For example, to develop on the Microsoft stack there were significant licensing and equipment requirements. Fast forward, and any keen developer with access to the internet can now self-learn. Major players such as Apple, Microsoft, Oracle, etc., have been working very diligently on removing those barriers to entry by providing free tooling, documentation, and training; education providers also currently deliver access to platforms and resources without having to negotiate complex deals with vendors or commitments to certain eco systems. As such, today it is much easier to find well-trained, experienced, and enthusiastic developers across most modern development stacks.
So, what should I be looking for in a development partner?
Known Frameworks
Before starting a development project, ask your development company to explain their Framework (technology) decisions, what other options they considered (and why they were rejected), what the expected lifetime of the technology is and how easy is it to upgrade.
Avoid, where possible, custom development “Frameworks” or ones that abstract Known Frameworks. While these can serve to get your product to market quicker, consider your product’s lifespan and make sure that the developer can support the Framework of your product with no hidden maintenance fees. An extension of this is that if the technology is abstract or rare, it will be more challenging and expensive to source development personnel. For instance, it’s easy to find a React developer, whereas ‘Automated-React-Fusion-Buzzword’ developers may be a bit more thin on the ground.
Readability
Code should always be written in such a way that is clear, unambiguous and, where practical, include details regarding technical decisions. Fortunately, as discussed above, most modern Front End and Back End development Frameworks now emphasise well-written code. To check this is the case, throughout development of your project occasionally ask someone on your project team to show and explain to you how something was written and works. You may not understand all of it, but you should be able to understand the basic flow.
Portability
Ultimately the goal of using Known Frameworks and making sure the code is Readable is so that your application will be portable. That is, if you take it to another development company, they should be able to run your product, maintain it (fix bugs) and further develop it (implement features). If your product is not portable, you will be able to use it once developed, but it can become outdated and inoperable very quickly. This can mean having to resort to developing a new product from scratch. For anyone involved in upgrading to new versions of software, portability saves time and resources. Make sure portability is openly discussed with your development team before signing a development agreement.
Regression Testing
Make sure your team includes a Quality Assurance “Tester” and clearly defined regression testing plan. A tester not only tests newly developed features and resolved issues, but also checks that what has been previously developed has not been affected by recent updates to code (regressions). They can also alert you to if there is any other cause for concern which may affect delivery timelines. Having a clear appraisal of your product’s readiness allows you to make crucial decisions as regards launching, or other testing activities with stakeholders or prospective real users.
The Essentials
Chose a development company that uses established Frameworks and common practices. Make sure you have an in-depth discussion with your developer about the available Frameworks before you begin development. Don’t be afraid or apprehensive about asking to see code and have it explained to you. Be open when discussing the future of your product and make sure there is scope for changing developers at any point. Ensure that a Quality Assurance Tester is included in your project team and keep an eye on their output to help your team assess potential issues early on.