A growing business is like a growing garden - there are so many different things you can do which could contribute to the growth rate. But many ideas for increasing growth need to be implemented and controlled scientifically - hypothesis -> experiment -> observation -> adjustment ... and so on.
Many years ago I worked a season in a fish'n'chip shop on the North Shore of Blackpool, near Gynn Square - that's the posh end where the civilised tourists stayed - no battered mars bars with tomato sauce up there! I worked hard as a general drudge, and every day I dreamt that one day I would make it to the very top and become the fish fryer! Bill, the owner, was very meticulous about the battered fish he sold. I think he experimented with a few of the variables involved - the thickness of the batter, how moist or dry and crunchy it was, and even the ratio of fish to batter was considered. He said his battered fish was the reason why hundreds of customers came to his chippy each day, and I certainly couldn't disagree - he had a formula for the best battered fish that I've ever tasted. Considering that a season lasts for only 20 weeks of the year, and the chippy probably wouldn't open for the entire off-season, how would Bill maintain his recipe data? Also, how might it be possible to develop another winning recipe such as a pie pastry within, say, the first 10 weeks of the following season, instead of another 3 years which it took him to develop his batter? And how did Bill 'know' that his success was due to his fish batter and not to some other factors?
A nearby supermarket has four of the loveliest, friendly ladies you could ever wish to meet. Their customer management skills are not feigned at all; they just can't help being lovely; their loveliness comes naturally to them. The supermarket also has one assistant who is not so nice. In fact, she drives customers away with her attitude. I think she is a bully, and she has managed to gather a small clique around her who also seem to have become impatient with customers. All the supermarket assistants work very hard and always look as though they are under a lot of pressure. They work all over the place each doing anything and everything as required - checkout, shelf-stacking, warehouse, office, etc.. A few months ago, Miss Attitude was promoted to supervisor, I assume because of her ability to control other staff members. Considering that there are both public- and non-public facing workspaces in the supermarket, and that patronage and profits could be increased significantly, and that the strong and controlling qualities which some people possess can actually be a good thing if used properly, how would you experiment with the business, and how would you record, query and interpret the data?
The more you lean towards bespoke software, the more accurately you will be able to model your business system, and the results of your analyses will be much more detailed and will produce more powerful information. Of course you can achieve this to a degree with some off-the-shelf (OTS) applications and frameworks, but for the most part, they are just not malleable enough to become accurate models of your particular business system.
The overriding question that you need to ask yourself is this: will the more detailed information that you can get from bespoke software be enough to offset the extra cost, and guide you to higher profits than an OTS software system could?
If you use OTS software, then you will need to compromise somewhat to make your business system fit into it. If you feel unwilling to compromise your business system, and you want your software system to fully reflect your organisation's unique way of doing things, then you need bespoke software.
The next couple of paragraphs might be a bit boring for most laypeople, and it may seem like I'm stating the obvious, but if you really want to use joined up thinking, then you must consider carefully the joined up components of your business system.
Just as individuals each have their own way of doing things, organisations also have their own ways of doing things. It may appear that businesses of the same type do things in the same way, but when you go into the details, they all behave differently to acheive similar goals.
A system uses objects, which, at the database level, we call 'entities'. Each of these entities has one or more relationships with other entities. For example, in an organisation, the following relationship between employees and roles might hold: "each payroll employee may take many roles, and each role is taken by just one employee". Another example: in the upcoming brave new world, "each autobot can make zero or more journeys, and each journey can be made by just one autobot".
Entities can be physical (i.e. hard) (e.g. employees, company cars, fish, etc.), or abstract (i.e. soft) (e.g. events, sales, roles, etc.). All entities have attributes. For example, an employee might have an ID, a name, a date of birth, a gender, etc.. An autobot entity and its attributes might be summarised as: AutoBot( AutoBotId, XCoord, YCoord, Speed, AutoBotRadius, PersonalSpaceRadius, ScanSpaceRadius, CurrentDestinationPoint ). The point is, you should try to identify the most important entities in your own business system. What attributes do they have? What are the natures of the relationships between the entities in your system? Once you start to make the connections between the various components of your business system, you will start to think that the number of questions and analyses that you could perform on your business is infinite, and your brain may start to hurt!
It is easy to become overwhelmed during such thought sessions. In order to avoid this, you could start with the following simple question: what data does your business need to record? You need to find the 'scope' of a simple model which will reflect your business system. You could probably think of dozens of entities and entity relationships, and dozens of attributes of various entities, but you should keep your model minimal to start with, and develop it gradually. You don't want to end up with what many other systems have - bloat - it costs time and money; it is mostly useless; and it just clutters your business system and gets in the way.
Other questions that you could ask in order to help you decide between bespoke and OTS might include: how many entities are in your business system which are not in your chosen OTS system? In the entities which are in your favourite OTS system, are there any missing attributes that you would like to add? That is, are there any other attributes which you would find useful in answering important questions and performing the types of analyses that your business needs?
So, in a nutshell, if you want the most accurate information specific to your own unique business system, then the information needs to be drawn from your own unique data set - which you have chosen.
Your own relational database in partnership with the structured query language (SQL) can be a powerful tool. SQL is a very beautiful language which closely resembles plain English, but which can be quickly translated into the logical and mathematical expressions which a database management system (DBMS) can understand. Your plain English questions and intuitions can be easily transformed into SQL queries, which can be passed to a DBMS (e.g. MySQL). Information is returned in the form of tables. Plain English queries can be written in as much detail as you like, and SQL will be able to provide a completely unambiguous expression to suit.
In a bespoke database, complex ad hoc SQL queries can be created on the fly within minutes and passed directly to a DBMS just as ad hoc problems involving numbers can be passed to a calculator to get numerical results. And just as mathematical formulae can be written into functions which are part of software applications, SQL queries can be written into functions which are part of software applications. Indeed, even the database structure itself can be as ephemeral and ad hoc as you like according to your specific analysis requirements at the time - such as a sales staff appraisal.
That's enough theory for now. Soon I'll continue this article with some practice. I will take Jimbo's original message and use it as an initial statement of requirements to create a minimal bespoke software system. Just one thing though; as the statement currently stands, I think the resulting set of entities could apply to any business, and so of course a software system based on this would not be very 'bespoke'. If the OP would like to add an extra paragraph of no more than 100 words describing what his company actually does or produces, then I will be able to present a more convincing demonstration of the power of a simple bespoke business model.
It really is amazing how the physical world around you can be converted into a powerful logic machine which models your business and its own unique way of doing things! And it isn't rocket science - it's computer science!
Questions, disagreements and corrections - always welcome - thanks.