In order to give some idea of my views on software design the following is a rough chronology of some areas of my software experience.
My introduction to computer programming was with first year Computer Science for Engineers as part of my BSc degree in Civil Engineering in 1973 in which we were taught the basics of computers and taught programming using punched cards. A very exacting and time consuming approach to programming
In third year we progressed to numerical methods including finite elements, linear programming and other advanced analysis techniques
With my PhD I progressed to one of the first programmable calculators and wrote a program for analyzing stresses in gravity dams
On completing my laboratory program in 1980 it became apparent that since I had 7,000 pages of results sheets and the University mainframe was overloaded to the extent that I could NOT save a single page, I would need another solution
My father invested the funds to purchase me one of the first desktop personal computers and I set about learning how to program it in Microsoft Basic version 1 and the Microsoft Basic Compiler version 1
Fundamental first principles economic modelling and reporting – dramatic business outcome – doubled turnover in twelve months
My father asked me to write a program to quickly produce presentation quality reports in various formats for his investment consultancy and to help him with the analysis of his fundamental economic models of gold share dividend yield potential
I studied the work of Yourdon on Structured Analysis and Design and Tremblay and Sorenson on Database design and wrote the software – heavy learning curve. I also realized that the early spreadsheet programs that were just becoming available would be beneficial and imported SuperCalc 1 to use on the project. This enabled us to quickly and easily undertake scenario analyses and feed the results into the database and reporting application
As a consequence of this solution my father was able to produce analyses much faster and with much greater diversity than previously with the result that he was well ahead of his competition in terms of his capabilities and was able to double his turnover in the first year of running the software solution because his clients could make better investment decisions than the clients of other advisers, a major achievement considering he was in his seventies and had just had a triple heart bypass!
From this project l came to understand the value of timeous information that enabled people to take high value business decisions ahead of their competition and also came to understand that cleverly designed software applications could add very considerable value to client organizations
Out of this project my passion for business information systems and, particularly, my passion for high value strategic solutions was born
Improved software development tools to produce better quality code
In addition to the above I developed a “pre-compiler” software solution that allowed me to write structured programs in Basic language without line numbers and using labels and highly commented and then convert the code to Microsoft Basic with line numbers in a very compact form with the labels converted to line numbers and all comments removed before compiling in order to work with the limitations of memory that I was forced to work with
Engineering data graphing software and digitizing
I also found that I could not purchase graphing software that would meet my requirements for presentation quality engineering graphs including log, semi-log and reciprocal axes with considerable flexibility. Accordingly I wrote my own graphing software
This included a facility to use the plotter as a digitizing platform
Following are scans of examples of some of the plots that were possible with this software
All of this development took place on a computer with 56kB of available memory of which approximately 20kB, the size of a small email today, was available for actually writing the software and running it
In this process I had to import software, port it between incompatible computers using software that transmitted one byte at a time with handshaking and make a hex code level patch to the executable code in order to get the software to run on my computer
I also had the computer modified so that 8kB of Read Only Memory (ROM) could be used as Random Access Memory (RAM) by flipping a manual toggle switch on the side of the computer as it booted in order to get the processor to read the extra memory. This resulted in a roughly 30% increase in available memory for programming and word processing, a dramatic improvement
All of these experiences taught me valuable fundamental lessons about computers, how they work and how to get maximum value out of them
Daisy wheel scale drawing plotting software
Having completed my PhD thesis I worked for a few months for a small consulting engineering practice. Here I developed a piece of software that used the full stop on a daisy wheel printer to print exact scale drawings of engineering structural steel trusses that were to be analyzed using computer software in order to make sure that the geometrical coordinate data had been fed into the computer
Consulting Engineering Professional Practice Management Information System
In 1985 I joined Steffen, Robertson and Kirsten Inc, consulting geotechnical and mining engineers, as an Engineer
Here I was exposed to the use of computer systems for complex finite element analysis and modelling of ore bodies and for slope stability analysis
I also undertook various spreadsheet based analyses using techniques I had developed for analyzing the data from my PhD research including developing a Dragline Hazard Management method using very structured analysis of geotechnical data
I also developed advanced probabilistic methods for slope stability of large mining slopes in marginal mines in Central Africa where limited failure had to be tolerated in order to keep the mines in operation
In addition to this I project managed and partially architected the development of a fully integrated Practice Management Information System solution. This involved comprehensive project production cost tracking, billing and work in progress management in a custom solution fully integrated with debtors, creditors and general ledger
In the process of getting the integration between the production system, which was custom developed from scratch, to integrate with the Accpac General Ledger I learned important lessons about the multi-dimensionality of corporate financial data
This project was highly successful and I published a paper at a conference together with our company Managing Director and the author of the software
1 Robertson J A, Greyling A J and Middleton B J (1989) An InteÂgrated, Inter-active ProÂfessioÂnal Practice ManÂagement and AccounÂting InforÂmation System PresÂented at the 11th Annual ConferÂence on Computers in Civil Engineering, "InformaÂtion Systems in Civil EnginÂeerÂing", Bloemfontein, May 1989.
The software went on to become a commercial product, ProMan which is still on the market today and in use in about 70 professional firms around South Africa and internationally
Cubic Business Model Generation with Spreadsheet Macro’s
In 1990, having gone into business on my own, I quoted a client 40 hours to develop a standard Chart of Accounts based on the Cubic Business Model concept
In order to achieve rigorous consistency in the code scheme I needed software to generate the model and the codes. I accomplished this with a series of spreadsheet macros in Supercalc 5 but it took me a thousand hours to fully understand the model, develop the conventions and get the software to work in practice
That concept went on to give birth to the GL Builder software that is discussed further down this page
Extension of ProMan for other Professional Practices
In 1990 I also undertook two projects to provide advisory services to clients implementing the ProMan software and, in the process, learned a number of hard lessons
In 1991 I undertook a further project for V3 Consulting engineers which included further customization of the ProMan software
This project was highly successful and included a Cubic Business Model chart of accounts.
There were unexpected spin-off benefits which including dramatically reduced audit time and cost and finance department head count reduction
This was the point at which I began to see the dramatic benefits that resulted from a well-designed albeit simple solution well implemented
The full case study is also available on this website
Hasty Custom Software
In 1992 I was called in to undertake a Pulse Measurement for CRM Risk Control Consultants with regard to a custom software development that was months behind schedule
I found that the developer was incompetent and that there was NO software
I was asked to assist and put together a team to develop the required software which was required within two months
We specified the software in two days, it was built in ten days and I spent a further ten days crafting the validation data in conjunction with the director responsible for the project
The software went live on time and after the first year was delivering massive amounts of high quality management information facilitating high quality decisions and was achieving this result with four clerks instead of twelve who were capturing 90% of the claims data instead of the budgeted 10% -- a huge efficiency gain that was completely unexpected
Following are a few screen shots with various comments superimposed
Notice how very basic the software is:
It took me years to fully comprehend the extent to which my personal techniques and methods were responsible for this extremely high value outcome
Even longer to learn how to articulate them and teach them to others
The power of this solution lay in:
- very simple design based on a fundamental first principles entity relationship analysis
- embedded in a software generation case tool
- coupled to use of drop down lists everywhere possible
- with those lists populated using very carefully designed validation data
- that accurately modeled the real world
- and catered for every foreseeable eventuality
- coupled to careful code design
- using conventions that I still use today
- like indents in the lists to reflect logical hierarchy
- headings in capital letters
- posting level items in proper case
- mnemonic codes that were easy for operators to enter
- such that within weeks they just typed in the code most of the time and did NOT need the dropdown lists
- codes reflecting the hierarchy with trailing periods to reflect the headings
- so that data analysis was greatly simplified
- and very powerful drill down and roll up were easily possible because of the intelligence in the data
Through this project I further learned the substantial benefits of a small piece of well aligned and well-designed software with precision configuration
These principles are discussed in more detail in the section of this website that details with Precision Configuration
See the CRM Case Study:
Loss Information Management System – LIMS – great technical success and commercial failure
As a consequence of the above outcome I was contracted to produce a much more sophisticated generic solution
The project lasted nearly a year and produced a highly sophisticated and highly parameterized solution using the Uniface programming language with myself as Solution Architect and Ettienne du Preez, who was my partner at the time, heading up the development team. Ettienne had produced the software for CRM
The software was exceptionally functionally rich, we invested huge amounts of unremunerated time to develop really powerful interface features and I TOTALLY failed to realize that the software was useless without the Precision Configuration
I did NOT budget for the Precision Configuration and we handed over the software mistakenly believing that ANYONE could do the configuration
That proved NOT to be the case and, by the time I woke up to this and submitted a quote for the configuration that was as much as the cost of developing the software the client had lost interest
Their IT department got hold of the project, drove us off by demanding intellectual property that they had no right to and gave our source code to another development house who rewrote the software in Visual Basic believing that the problem was the technology – inevitably they were still unable to get it to work – the problem was with the Configuration NOT the technology, as is so often the case
Moving on – the StratSnap Tool
For a number of years I had little to do with software other than that I refined my strategic analysis and design tool that I branded StratSnap, a suite of spreadsheets that is discussed on the Strategy page and is available for download on this website
Once more I saw that a relatively simple piece of software with an excellent concept and utilized by an expert user could add very dramatic value simply be enabling things that were too time consuming and onerous to do manually
Following are a few screen shots with annotations from the presentation on Strategy
Very formal software specifications and documentation
Around the same time I undertook a major project to strengthen an existing relatively old piece of software that was mission critical to my client
The software had been custom developed by a single developer, there was almost no documentation and there was NO back-up if something happened to the developer
We brought in two analysts, paid the developer to train them up on every facet of the source code, and produce a comprehensive entity relationship diagram, document the database, document the source code conventions and the user interface, add comments and create an overall manual for the maintenance of the software
The final result was a stack of bound documents, including source code, nearly 0.6 meters tall
A few weeks after the document pack was delivered the developer was killed in a hang glider accident – the software served the client well for another eight years
Out of this I learned that seemingly obsolete software can be given a new lease of life and that developer death risk can be cost effectively and successfully mitigated
At the same time I undertook an exercise to specify major enhancements to the software and developed an understanding that the design should comprise accurate screen mock ups and that it was ONLY by simulating the software, in that case in a Word Processor package, that client personnel REALLY engaged with the software and applied their minds to making sure that it was what they needed
By doing this we picked up a major design flaw resulting from inaccurate business personnel communication of the requirement
At the same time I developed comprehensive protocols in terms of specifying the database and the field entry and field exit processes and field attributes moving to a situation in which the specification comprehensively defined the way the software would work, at the same level of rigor as is applied in engineering design
African Sales Company – small pieces of clever software that made a huge difference
The African Sales Company case study illustrates how small pieces of clever software carefully aligned with the client’s business can deliver very substantial strategic benefit
View and listen to the full presentation to get the full story
Listen to live recording of: ASCO Case Study -- Creating Competitive Advantage -- Priebatsch and Robertson -- Audio in mp3 format
(Also refer to ASCO Case Study 1 on Strategic ERP Investment)
The solution revolved around a strategically aligned Product Class table with hierarchical data that modeled what we came to call the “Brand Hierarchy”
I designed and had built software that understood the rules of the code scheme such that new codes could be added that would honor the code scheme
Added to this we set defaults at every level of the hierarchy so that provided the higher levels of the hierarchy were maintained by a senior staff member with excellent product knowledge more junior staff could add new items to the product master and all the major elements of the configuration would be intelligently dropped down into the data for the new item and the prompts for the basic data would be intelligent based on the hierarchy
As part of this software we introduced a number of client specific validation tables off which we hung significant product intelligence which enabled us to configure the master data very precisely to the requirements of my clients’ customers thereby enabling us to add MORE value to the client and their customers
We then developed further capability in the form of a piece of software that would be run once a year or on demand to generate a set of projects in the Projects and Contracts module that corresponded to the brand hierarchy such that the client had a project for every single Brand Line, literally thousands of precisely configured projects across 27 expense lines, exactly the same for every Brand line, with bins for every month of the marketing year -- impossible to set-up manually
In doing this we made the Projects module into a marketing planning module that appeared to users to be a seamless extension of the Products database even though it was in a completely unrelated software module
This capability removed something like 20,000 accounts from the General Ledger and delivered a marketing project planning, reporting and analysis capability that was far ahead of anything that any other players in the relevant market globally had
This has enabled the client to be more effective, more profitable and to secure new brands because of their ability to manage their brand management and brand development more effectively
Yet another example of where small pieces of clever software make a huge difference to what would otherwise be a mundane ERP implementation
GL Builder – in-house tool
Another piece of software that I have designed is an in-house tool that we call “GL Builder”, it is the third generation successor to the Supercalc 5 spreadsheets that I built in 1990
It provides a user interface that enables the consultant, myself, to manage the organizational complexity of the client in such a manner that it is possible to create precisely coded mini-charts of accounts for every business unit, be it cost center or profit center as well as for corporate overheads, etc
This is done in compliance with standards, protocols and conventions that are direct successors of those I developed in 1990 to create a truly scalable Group Consolidation Chart of Accounts which supports highly sophisticated management analysis and reporting together with a management culture of high accountability and effective financial performance measurement which then ripples through the entire ERP and Business Information System with spin-off benefits of greatly increased self-audit capability and reduced audit costs
See the Cubic Business Model and Chart of Accounts pages for more information on the method
Following are a few of a series of screens that lead the consultant through setting up the Cubic Business Model and then facilitating the client to allocate exactly the accounts that are to be applied to each cell in the model thereby allowing the Chief Executive and Chief Financial Officer to determine exactly what items will be attributed where
This then flows through to budgeting and ultimately to the entire approach to managing the organization
Anthony Lee, MD of Transport Holdings, has said that the process of defining the model has added value that he rates as being a twenty year investment
The above screen allows the consultant on-screen to select available accounts on the left hand pane and copy them to the right hand pane for a specific cell in the cubic model matrix, facilities also exist to duplicate cells for similar business units
The model is entirely scalable and can be used irrespective of the size of the client organization
The software is available for sale should you be interested provided it is accepted that this is an in-house tool under development and NOT a polished off-the-shelf product
The software also provides facilities to map the existing Chart of Accounts onto the new Chart of Accounts where this is practical – in some cases the old chart of accounts is so badly structured and coarse that no effective mapping is possible
The fundamental approach here is to design a highly effective strategic management tool AS WELL as an accounting tool
This tool illustrates how clever software coupled to a highly effective strategic concept can enable a competent operator to produce results that are extremely high value and of lasting value
This software is technically complex and has been developed by an individual that I hold to be what I term a “Genius analyst programmer”, Nicholaas Hugo, who is my partner in developing this software
Financial Analysis Suite Concept
The highly precise coding scheme that is output from GL Builder results in financial information that is extremely highly structured with a code scheme that is extremely intelligent and highly structured
See the examples in the Taxonomy Manual and on the Precision Configuration pages for more information
This high quality strategic data opens the door for a highly sophisticated analytical suite that I have dubbed the “Financial Analysis Suite” this is outlined schematically below
If you are interested I am looking for a business partner who is willing to invest to enable us to develop a prototype of this software – I have complete certainty that this is the future of financial management tools
The following diagram must be read from the bottom up, the foundation is a database designed to comply with the code scheme and Cubic Business Model
This model can be superimposed on existing unstructured financial data and, with refinement, can be used to create an extremely high value financial management solution that will put any organization way ahead of its competitors
Proprietary Transport Management Solution
I am currently involved with the design and construction of a very advanced bespoke Transport Management Solution
The detailed draft functional specification of over 200 pages with detailed screen mock-ups has been completed and detailed test master data is in course of preparation
Following are examples of a few of the many screen mock-ups, these have been produced in Excel
This project has brought home to me the extent to which many solutions on the market are so generic as to be almost useless and how software concept is frequently constrained by the very limited view of what is REALLY achievable on the part of both the client and the implementer
Well-conceived, well-designed, well-built and well-commissioned software can add huge value to the client organization provided it is strategically aligned taking account of the real competitive fundamentals of the business – the essence of why the organization exists and how it thrives – are accurately understood and reflected in the design
It has also reinforced my understanding of the extent to which implementers and software companies lead clients to dumbed down lowest common denominator imprecise configurations and set-up and then milk the client in perpetuity for support fees for badly configured software
This contrasts with the approach that I advocate of Precision Configuration and educating the client to effectively harness and manage their systems with configurations designed to last twenty years with limited maintenance – all part of the Engineering Approach that I advocate
Software – Wrapping Up
I hope this has given you some idea of my views on software and my experience with software
In addition to this I have managed the implementation of off-the-shelf commercial products and diagnosed dozens of failed and sub-optimal off-the-shelf commercial product implementation both in terms of big brand ERP and other products by big brand implementers as well as niche specialist software systems
All of this experience reinforces my profound conviction that the design, development, testing and deployment of software is fundamentally an engineering endeavor, that it IS possible to cost effectively develop strategically aligned custom software and, that IF one does this, the benefits to the client are potentially huge in terms of enabling the client to thrive by doing the right things well, the basis of my logo based on the concepts and principles of Professor Malcolm McDonald
Please email me to discuss how I can be of assistance
Dr James A Robertson PrEng
James@James-A-Robertson-and-Associates.com