Software development can be an expensive process, however good planning and a reality check regarding what is possible can help mitigate many of the risks. This article lists a few things to think about when embarking on a new software project.
Do you need a product developed?
This may sound like an odd question from a company keen to build you a new product however before we start reinventing the wheel it is essential that you investigate whether a solution already exists. In many cases an existing solution could be far more cost effective than starting from scratch.
Determine what you really need
It’s essential you establish what you are trying to achieve with a new product. What is your primary objective and how will you or your customers benefit from it.
Plan a roadmap
Large projects take time to develop and throughout that period many things may change that can affect the viability of your product. Perhaps new legislation is introduced or a new technology becomes popular.
Adopting an agile approach to development can reduce risk and also prevent investment being wasted on unnecessary features. Breaking your project down into small deliverable iterations that can be brought to market quickly will give you the opportunity to adapt and pivot if required. Also the sooner you get a product in front of customers, the sooner you can figure out if it’s the right fit.
Don’t guess what your customers want
What seems like a good idea to you may not be what your customers want so it is important to get feedback as quickly as possible. If your idea does not resonate with your target market you may want adapt or pivot and the sooner you do this the better.
Avoid Feature creep
It’s too easy to pile on unnecessary features into a project and in many cases it will be those additional features that lead to the projects failure. You need to stay focused on solving your core objective before you start embellishing a solution with extra features. It’s important to record feature requirements and even spec them out however leave them in the backlog until the important things are done.
Choosing the order to develop features in an application is difficult. Most clients will see every feature as essential, especially if they’re comparing themselves to more mature/established products. Unfortunately you need pick which item comes first and which can be delivered at a later date. Not only does this approach get your product to market faster, you may find that some original features/ideas are no longer applicable as the product grows.
Solve the hard problems first
In any project there will be certain aspects that are critical to its success and you can’t afford to leave them till later. If your product relies on a complex algorithm then make sure it works before you start building all the other components. I’ve seen projects fail late one because it turned out that the core objective was not addressed early and turned out to be impossible or simple not feasible.
Be prepared for some difficult questions
Not every product is meant to be and in some cases you may find that your idea is not actually as original as you thought. Bytechaser has been designing and building software for many years and we’ve seen ideas and technologies come and go. It’s that experience that allows us to help focus your ideas and also demonstrate where similar ideas may have struggled in the past.
Few clients have the luxury of an unlimited budget so it’s critical you identify what you want to spend and then adjust your expectations accordingly. A realistic approach to budget/features and timeline will result in a better product and will give you the confidence to invest further if necessary.
A good product should feel simple and easy to use by your customers, but also the architecture behind it should reflect the same principles. When we design software we consider your longer-term objectives, how it may need to scale, how it will be maintained and how your data is managed.