Why Would I Want to Build a Custom System?

To answer the above question, the bottom line is you probably don’t! However the more complex the system the more you have to research this answer. Custom electronics in many ways is a more straightforward problem/decision than custom software and many companies provide off the shelf computer software to run your business.

Buying off the shelf software has many advantages

  1. You pay a one off cost plus possibly a percentage per annum support.
  2. It’s generally well developed and free from bugs (I said generally!)
  3. Many other people are using the software so you may have a pool of people in the workplace who know the system already.
  4. The company generally has multiple developers and support people, you don’t need to know the risks involved say if the main software developer leaves! (You really should ask these questions if the company is relatively small!)

Now you’ve read the above, and before you close the browser, there are a few gotchas. Sometimes the off-the-shelf solution you buy causes more problems than it solves. i.e.

  1. It could be too complicated. why do I have 10 switches when I only use 1, or why do I have 20 fields on my form when I only enter data in 3 of them.
  2. You could end up changing your business model to fit the software.
  3. You may end up doing most of your work in spreadsheets as your system “does not do that”
  4. You may end up spending more on office administrators than on your business.
  5. You are at the mercy of the company for upgrades and you may even end up with forced upgrade which means lots of cost for your business.
  6. Updates may introduce complexity, re-training or even total loss of functionality.

Custom systems generally solve all the above but also have their problems

  1. They are expensive up-front. Someone has to analyse your business requirement and build the solution you are happy with.
  2. You are also the tester. While most bugs will be ironed out by the developer, you will need to ensure the system is fit for purpose, though good developers will minimize this, most “unhappy-path” scenarios will be unknown to the developer until they are first encountered.
  3. You are at the mercy of the development company! Once all your eggs are in the proverbial developers basket, will they still play fair once they know you cannot go anywhere else for support?
  4. How many developers have they got, what if that fancy marketing website hides the fact they only have one, and they get run over by the proverbial bus! (Unlikely in Blenheim!)

Most auditors will tell you not to go the custom development route due to risk, and in many cases they do have a point! Many auditors also spout this hypocritically, and without subjecting the off-the-shelf software to the same scrutiny; but that’s another topic! Alleviating the risk can be difficult but it is possible. (Auditors note!)

  1. Insist on code/system/data ownership. You are paying for the development so you should own it or at least have full access to all the code and documentation. So do ensure/insist you have back ups of the latest working source code, data schemas, documentation and historical snapshots. Nothing should be hidden, if it is then you should seek further advice as your business could be at risk!
  2. Have a knowledgeable third party or a member of staff involved in the development to audit it and test the final product.
  3. Get recommendations on the person you are entrusting your business too. Do you trust them?
  4. Keep copies of all the documentation and correspondence in case of dispute
  5. Agree costs up front for on-going development and support
  6. Get an SLA which gives guaranteed response times for problems and includes a sunset clause to retire the system at its end-of-life.
  7. Be realistic with the system at the start, a new system will basically be a pile of bugs held together by logic, generally called Alpha-quality, beta quality software (or Microsoft Release Quality!)  Bugs will occur, it is how quickly these bugs are fixed that is the true measure of development quality.
  8. A new system may also not quite do what you want (due to assumptions or mis-communication). It is best to catch this one immediately and throw it back to the programmer before it goes into full production as it will be much slower to fix if its in production or has production data.
  9. Importantly, ensure you can export any dataset or screen to a spreadsheet to allow for things the system does not do (yet) and to check calculations (it can also be a good reporting tool)

There are a lot of articles on the Internet and a lot of examples of successes and failures even when you use the biggest companies to do your system. Big Companies may sound good but rarely deliver the best results.

Roving Dynamics Ltd

Hopefully the above has not dissuaded you too much as desktop and server programming can be undertaken by Roving Dynamics to any level and size. The company has experience writing code for multi-user networked windows systems storing millions of records all the way down to services (daemons), low level drivers, DLL’s and interfaces to external equipment hardware. Where possible all code is written to use standard calls and programming conventions as recommended by the Operating System (OS) manufacture at the time of the design to ensure compliance with future versions of that OS this means in practice that code we have written for Windows 95 still works on Windows 11 or whatever comes after

Most of our larger projects were written in Delphi and we still support some large systems which use it. Some more recent development has moved to Lazarus as it is both Open Source and can target every Operating System currently used. Lazarus is a Visual IDE compatible with Delphi which allows very rapid development of screens with little code it is an evolving language and has a very large developer community. Pascal is also easier to read than most C derived languages and like C compiles into a single executable program which can be run on the target system. Being very easy to read is important for support as developers often need to go back to ancient code and need to understand what it did or check out the suitability of an external program.

A man who knows only the capabilities of a car will never recommend a truck to do a job.

Database systems always use SQL and will be designed for multi-user access and are network friendly (i.e. they wont clog up your bandwidth like file based databases), they will scale up to the limitations of your chosen database (which you will never reach – believe me!) by using efficient queries your system won’t slow down as your data size grows. We have built systems targeted for Microsoft SQL server, IBM DB2, SQLite and MySQL (All versions including its more open source derivatives) It is also possible to extract data from other databases, excel tables or proprietary systems as required into the new system.

Systems Analysis

Systems analysis is examining you existing systems and databases, looking at how data is entered and retrieved from these systems, looking at where the data comes from before it comes into your system and where it goes to when it leaves. Once this is done, and after talking with the people who actually use the systems making recommendations to make it more efficient

Systems migration, database up-sizing and data conversion.

You may have already concluded your current database is too slow or won’t work properly with multiple users or over remote links, so you now need to move it from the old system to the new system. However your staff are now faced with manually changing or correcting thousands of records!  We can write the conversion routines to do this mapping the old data from one database to the respective fields in another database with or without any modifications. Once the program is written it will run the same whether you have one hundred records or one hundred million!

Automatic Data capture

It is still common to see workers monitoring machines, packages, widgets moving through your business, writing them down on a sheet and inputting them into a database. If this sounds like your business we have experience in writing automatic data capture programs directly linking to your machines (PLC’s) or capturing movements via bar-codes or RFID so nothing is missed and monitoring costs effectively become zero.

Training

If you have the time and the inclination we can train you on all aspects of your computer system, from creating simple SQL queries, web pages and reports through to designing, programming and maintaining your own database system.

IT Systems and Networks

I don’t tend to do too much of this these days due to the demands on my time, and the great IT contractors I usually work with, but I was, and still am, a fully qualified networking engineer. I was actively working in network support, installation and management roles up to when I first started the business and I still actively work with and understand fully the technologies, and work with them daily at most of my clients sites.

I am very much an advocate of local on premises servers where production up time is critical but I do realise that lower priority, customer facing and multi-site systems may be better served by cloud services and can accommodate all of these technologies into my services and products.

Specifying your requirement in plain English

Before you enter into a contract with any company, you should really know exactly what you want from the final system. If you have the specification already written, great, just send it to me (in any format) and we will return a quotation without fuss.

If you haven’t got a specification we can also work with just your good idea, and while I won’t be able to read your mind, we can rapidly create skeleton or prototype Windows or Internet/Web systems which can be refined until you’re happy it is doing what you want, or at least make you refine the way you think about your business! This prototype/refine option is not as expensive as it sounds as a skeleton program is exactly that, devoid of all the baggage of a full system, and in some cases this approach may ensure you don’t go too far the road in the wrong direction!

See also Analysis of a Production System..