Software is very important component of business these days.A software may be a e commerce portal where you sell your products and services or a basic accounting software .
Sometimes, standard software packages do not meet the needs of your business. You might be tempted to hire a developer or a vendor to create your own software.
While it makes a lot of sense to create a software that aligns with your business needs, it may not be that easy to manage the software development. It is more troublesome if you are non tech entrepreneur. There are a number of pitfalls that may happen during the software development. Though it may almost constitute a large book on software , for all practical purpose, I have listed out a few of the important ones that you should be aware of.
Does not work as specified or required
Let us say you want to develop a software that sends email to your employee upon processing an order. You wrote about this feature in the specification document and find that software does not do that for any reason whatsoever.
This software does not meet the intended specification and your business may not achieve the intended result.
Poorly written code
You probably think that code lies behind in a place and you will never need to look in there. Unfortunately that is really not true. If you get a software glitch, you or your team will need to take a look into the code. If the code was well written you could find the “bug” and correct it as soon as possible.
Poorly written code is a maintenance nightmare. It is important to make sure that code is commented and written clearly.
No technical documentation
While you create excellent documentation for your software user(your customer), you ignore technical documentation because you feel, that you may not need it or understand it.
But not having well written technical documentation can disproportionately increase time to find out and rectify software troubles leading to inconvenience and business losses.
Un-tracked changes to the code
As a non tech person you may not be interested in tracking the changes made to software as long as issues are fixed.Solving issues may lead to large changes in code. Not tracking these changes means spending more time when someone makes changes to the code later on. It might get messier.
Strong coupling between the modules
A software consists of structure of modules. These modules are often connected to each other. They call other modules and pass data to them. For e.g. your sales module calls email module and pass sales data to be sent to your customer. It is then the job of email module to format and send it properly.
A strong coupling happens when if you remove one module or replace or change it , the other module breaks down. It is often caused by bad design. It is out of the scope of this blog to explain this concept fully. You will have to ask your developers to create software with multiple modules having flexible coupling with each other.
Hard coding of values
There are certain parameters ( such as country codes, state codes, ISD codes etc. ) that that do not change for long periods may be “hard coded” in your application. It makes software development easier and faster.
But too much hard coding is bad because it interferes with the software flexibility. It is important to make sure that you do not allow your developer to hard code values without discussing with you.
I hope you learned something about pitfalls that can happen during software development. Let me know your experiences