Ok, so onto the penultimate installment in our series, where we share our top tips for custom application development…
Finding a supplier for custom application development can be a potential minefield without significant planning, research and careful consideration.
Home automation devices, industrial controllers, intelligent sensors and many other types of smart devices will be made up of a number of both hardware and software components. These software elements may be a combination of many applications from different vendors or one single application running on the device.
We’ve got top tips for you to help point you in the right direction when it comes to that crucial decision of outsourcing your bespoke application development to the most suitable supplier. Get that choice wrong, and the consequences for your business could be disastrous.
First, let’s examine the main forms of application software…
Types of application software
When a product company is looking to fulfil the software requirements for their new device, they may be looking to find some software that already exists to cover their requirements or alternatively look to design something bespoke tailored to their needs.
The choice of off the shelf or bespoke is not as simple as it sounds, however, and there are many grey areas in-between.
There are three basic levels of application software available to the product designers:
OTS Close source
Closed source applications are applications that are licensed normally in binary format from a software company; these will be used without any modifications other than options in the application itself.
These applications may have the ability to reskin or adjust the look and feel of them to a degree, outside of this the users would have to request a change to the vendors, this may not be something that would be entertained or not in a timely manner.
This software maybe licensed per device, product range or company basis depending on the pricing model. It is likely that this cost is the lowest of all three choices but with the drawback of the features being fixed by the supplier, it maybe that the supplier will address bugs and add new features but these will not be controllable by the client.
As this software is already available this is the quickest way to get a product to market. Testing will already have been performed, if there are bugs these cannot be corrected without the software vendors help and support which may take time depending on their internal priorities.
OTS Open source
Open source applications are supplied with full source code and authors can take this an modify the sources themselves, depending on the licensing model the modifications may need to be reincorporated back into the public domain for other users to leverage. So although changes can be made, releasing this intellectual property back into the public may not be viable or depending on the changes needed the modifications may just be too extensive to make.
Although this software is normally free, it’s important to note that even building the system may take sufficient time and resources – either internally or from a 3rd party. Configuring and modifying the system may require significant effort. Open projects may contain generic features over many years causing the code to be hard to maintain, service and change.
Reliability will be on a per-project basis, well maintained and used projects may contain few bugs, they also may be very prone to changes as new features are added; customising a particular version will lead to difficulties when upgrading to new versions down the line.
Many elements have a known starting position, software features, bugs, security; depending on the amount of customisations this will affect the costs and timescales to a greater or lesser extent. Testing will be necessary on all changes.
The main project will most likely continue to have new features added by contributors, so care should be taken in order that future releases can have your features integrated without major rework. As these are not controlled by you, this is a big unknown for support.
Custom applications are designed from the customer requirements, they will only contain items requested so are totally focused on your product. Some elements of the application may leverage open source components but being careful of the licensing model so that any sensitive IP is contained in the bespoke side and so kept private.
These types of application generally take more time to design, timescales are longer and development costs higher but they are focused on the goal of the device. The end result will be more streamlined in terms of performance, memory usage and only contains the features wanted and be accessible in the way conceived by the product designers.
All elements are under the product designer’s control. As the software needs to be designed, the timescales are the longest and must include testing and validation before release. Costs will be initially high for the development process, but once finalised should be only then on support and new features for future releases.
Application software – how they differ
Top 9 Tips for Custom Application Development
Here’s our check list to keep you focused and on track for planning a successful application development project.
1 Get Your Spec Down
When planning for your custom application development, nothing is more important than having a clear vision of what you want the software to achieve. Ultimately, your custom software should add value, improve efficiency and support your business goals.
Avoid getting carried away with a long wish list of features. Stay focused – whittle this down to the absolute essentials required to align with your business needs.
2 Do Your Homework Thoroughly
When seeking a custom application development supplier, do you homework thoroughly! It sounds like stating the obvious, but it’s surprising how many people skimp on this fundamental step – exposing themselves to big problems that will ultimately derail budgets and add delays to a project.
Research the supplier – be sure they can evidence crucial information such as date of incorporation, certifications such as ISO9001 and membership of relevant industry bodies.
Don’t go near any business that doesn’t have references or testimonials. With any firm that does, always follow up privately with the clients to get the whole picture. That way, you’ll get a good idea of the experience you can expect as a customer.
3 Don’t Skimp on Resources and Expertise
Grill the company thoroughly on their expertise and resources. In particular:
· What do they specialize in?
· How broad is their experience across the embedded software stack?
· How much prior experience do they have in working for your type of business or project?
· Do they have the manpower and expertise to meet – even exceed – your project requirements? This is particularly important, as your supplier could potentially become a long term development partner. Find out who would be working on your development and the type of experience staff have.
· What security measures are in place to protect the custom code during development?
· What sort of timescale would they put on your project? This is the best way to get an idea of costs v your budget.
4 Be Mindful of Methodology
Software design houses develop applications using various methodologies – including agile, SCRUM and waterfall.
Be sure that the one you choose for your custom application development supports your business needs, and go through this with each prospective supplier to ensure their working model lines up with your project.
5 Ask “When Has It Gone Wrong?”
Don’t be wary of challenging your prospective supplier by asking them about a project that wasn’t successful.
The point here is to find out how well the company performs on four project-critical levels; discovery process, communications, methodology, project recovery. You need a custom application development provider who owns their mistakes and learns from them.
A firm that just blames the client or constant spec changes isn’t necessarily taking responsibility.
And that should sound alarm bells.
6 Clarify Your IP Status
It’s essential that you clarify with your prospective developer all issues surrounding the intellectual property rights of your data.
Make sure lines are clearly drawn on source code and IP from the beginning, take legal instruction from an intellectual property lawyer, and get any agreements in writing.
7 Prioritize Communication Protocol
Clear communication is a prerequisite for a successful custom software development. Be sure to stay across every stage of the project. Find out how the company communicates between colleagues, teams, projects, clients. Does their communication protocol support your development requirements?
It’s vital you understand the costs of development, new features to be added after initial release and for maintenance purposes.
If your specification is clear a vendor should be able to give you a fixed cost for the development, this should including warranty and break down costs of all your features for transparency.
If your project is large, then it could be that the vendor can develop the release in a number of steps to get you to market quicker with reduced functionality, then building on this as you gain more market traction.
If this is the case, be sure you get costing for all the phases, not just the initial one – even if these are estimates this will give you a view on the total project cost.
9 Factor in Scalability
Ask yourself: does the prospective supplier have the capability to futureproof your bespoke application to keep it up to date in line with the market, the industry and your business growth?
Discuss the items on your wish list with your vendor and make sure they are well-informed of your plans. This will allow your developers to design the application with the ability to cater for these features in the future – keeping the development costs down and mitigating redesign of core features as you progress.
Done correctly and with due diligence, this thorough vetting of potential suppliers should provide a solid foundation for your custom application development project.
There are many things to consider in the development process and in many circumstances the choice of which model to use will already be made for you.
Products that have a single purpose may not have any off shelf software that is compatible with the hardware, or simply there isn’t a software package available that fits the requirements well enough.
Still to come…the final part of our series on Mobile Application Development…
In the meantime – here at ByteSnap Design, we can advise you on all aspects of software development – from off the shelf software to fully bespoke designs – working to achieve the product that is right for your business.