Living and breathing software sometimes I forget how the rest of the world perceives this entire space. Sometimes a question from a friend brings me back to reality and makes me think that our world is just another secret world of black magic, potion, secret recipes and spells.
In those moments of lucidity, I can almost see why our world of custom software development can be something mysterious to people outside this world.
People understand software from the high level of course - they just have to these days. They understand Microsoft is where Word comes from. But when it comes to small shops, like ours, that do one off mobile apps or custom designed software it's hard to understand. The questions that come out are at different levels, the obvious ones are: Why is there a need for such custom software? Who in the world would want one? How would we ever make one?
So today I will write a small article that sums up the answers from a craftsman's point of view. Note that it is really an attempt by a craftsman to explain is craft and his shop to someone outside his craft - so our techie readers may find this a bit irritating and may well jump ship now!
A customized software is a piece of software written according to the requirements of a customer. It is specific to his needs and if written right it solves just his problems.
A customized software is usually written at the software company and not at the customer's site. But sometimes the requirements are such that it makes sense to move the developers to write the software at the customer's place.
A custom software application should only be written if there are no off-the-shelf software available that does the job. Simply because its much cheaper and much faster to get an off the shelf software. And writing a customized solution would just be waste of effort and money. For example if you wanted to make MS Word it would probably cost you a few billion dollars (by the way does anyone know the real figure? Googling didn't help).
The process of writing the software can vary. It starts with some initial discussions about what is needed - the requirements. These requirements are then usually put into one or more documents called the specs. Most of the times some pictures would be drawn up to show how the software would solve the problems and meet the requirements. A half working version of the software can also be made quickly to give the customer a feel of the software. Then the work is split up in smaller parts and the software is made it phases. There is a lot of to-and-fro between the customer and software group to see if things are working or not. All throughout testers check if there bugs in the system and the developers fix those bugs. At the end the custom solution is given to the customer - the deployment.
So that is roughly a quick description of the world of custom software. Hope I've not put too many jargon in.
N.B. Just in case you are new here: we are a custom software company in Bangladesh making custom web, desktop and mobile apps for other companies and being very good at it! Check out this page to know more about our software development work culture and environment.