Practices and Principles for Production-Ready Software Development By Dave Ingram


About Me

My Journey

About DBR


Personal Development

Early Learning

After I'd got to grips with programming in BASIC on the ZX81, I started writing my own programs. I was very much into games and the first program I wrote was a very simple platform game. Nothing elaborate but it was my all my own work. The player was a dollar sign '$' and the screen had rows of inverse video spaces:

Platform Game

The player moved left and right along the blank rows. At random intervals a gap appeared in the inverse video row and the only way to get to the top was by "jumping" through the gap. I can't even remember what I called the game now.

I soon advanced to the Atari 800XL. The first game I wrote on the Atari was a basic fruit machine aptly named "Jackpot" which I expanded to include nudges and features. I actually made up some tapes (the way some software was packaged back then) which were on sale in the local computer shop although I didn't get any sales.

I wrote a number of programs on the Atari and I was very keen to get feedback on my advancing programming skills. I armed myself with all my wares and set about contacting local software houses to get feedback and this is actually how I met "John" aka David Steele - a great friend and mentor of mine.

I was working at the time as a Junior Import/Export Trader but I'd outlined some ideas to John which he thought were worth persuing. Still working during the day, I prototyped my ideas in the evenings. I handed in my notice and subsequently set up my own company with John - Global Computer Services.

Global Computer Services

To this day, I still look back at this time and have great memories. It was probably the most creative time in my early development. I'd formulated some ideas for a business system which I referred to as All-In-One, born out of my time as a Junior Trader. I didn't know it at the time but the system was remarkably similar to what SAP is today. However, implementing such as system had its challenges, especially on an Atari 800XL. However, I was on a mission so I pressed on.

I always wanted to "fuse" game style graphics and usability with business systems and for a short while I referred to the venture as "Fusion". John had experience of developing games on the Atari and tought me a thing or two. Actually he tought me a lot.

We wrote an 80 column driver because the Atari only supported 40 columns. The 500ST was also just released and I got hold of a mouse from the U.S. which we wrote a driver for too. Handily it had the same connector as the joystick. John, also an electronics guru diagnosed that for the right mouse button to work, it needed to be fitted with a resistor. We'd also developed a complete windowing system which we called Box-Paper. In need of cash we decided to put "All-In-One" on hold and try to make some money. We developed Letter80 which was a WIMP (Windows, Icons, Mouse, Pointer) driven word processor. It even supported text highlighting in any of 128 colours. Atari originally stated that the hardware was only capable of displaying 120 colours at any one time. However, due to some smart programming (by John) using Display List Interupts and player missiles we could display all 128 colours at the same time. We put an advert in Atari User magazine and had a great response. We even stormed the Atari User Show in Hammersmith with our wares which were greatly received. However, due to supply problems with the mice our success was short lived. We always said we were artists not businessmen.

By the time we finally wrapped the company up, I'd written SoundStick - a sound and music compilation application, The Animator - a basic animation studio, Character Editor - a basic character set editor and a whole bunch of Intelligent Buttons and Menus for All-In-One. I even toyed with some learning and expert system engines. All of which we made no money out of but it was a fantistic learning experience. In fact, it's what secured my very first programming job.

ThemeWare and TWControls

The years have rolled on now and it's around 1992 and I've advanced to Personal Computers. I'd learnt to program Windows applications in C. I'd also learnt Turbo Basic and Turbo C amongst other things. I'd worked as a bespoke software developer and once again my ideas were flowing. I was back to my "fusion" thoughts and very much into code generators and 4th Generation Languages. I'd designed a 4th Generation Language and DBi which was meant to be an Interactive Database Engine. However, it was time again to make some money. I started learning Visual Basic and was gripped by how quick and easy it was produce Windows Applications. I was especially impressed with the ability to develop your own "Custom Controls" (VBX) in C and use them. Well, that's all I needed to get the blood rushing and the ideas flowing.

Anyone familiar with Windows programming will understand the concept of resources - strings, icons etc. and the concept of resource files and in particular storing resources in DLLs. One of the drawbacks with Visual Basic 3 was its support for application Globilisation (internationalisation and localisation). I set about developing a series of Resource Aware controls (RAWControls) in C. In short, instead of specifying a string for a label's caption, you simply specified a resource file and a Resource Identifier. The basic set included all the common controls such as Label, Button, Group etc. At runtime you could simply swap resource files (DLLs) in and out and the application would dynamically display the content. So switching from English to French could be done at runtime so easily. These controls were actually featured in an article for PC Direct magazine and included on the cover CD.

I set about another idea - TWControls, short for ThemeWare Controls. The basic idea was to allow the inclusion of images as well as labels on certain controls such as Label, Button, Group and so forth to make the screens and dialogs look nicer. Obviously, they'd be Resource Aware and OCXs too. Somewhere among my papers in the office I still have the original advertising flyer I produced for them annoucing their launch in October 1995. I didn't manage to gain any traction with these controls so I decided to get another job. However, today you'll notice that these types of controls are common place.

Author Aspirations and Ideas

My personal and professional journey had moved on and I started formulating ideas for a book now. For many years I scratched down my ideas and thoughts. So once again, with purpose in mind I scratched out a simple email to the submissions department at Wrox outlining my idea. I was so excited when Wrox wanted to know more about my ideas and I started working through a full proposal and outline for the book. It was very nerve-racking going through the process and waiting for the decisions from Wrox. However, everything passed, the book was approved, the contract was drawn up and I began the long haul of actually writing the book...

Published Author

It was a great day to finally see the book published after so much hard work. One of my all time best moments was being in Foyles book shop (my favourite book shop) and seeing my book on the shelves. As the book aptly closes Onwards and Upwards...

HomeAbout MeMy JourneyAbout DBROutlineExcerpts
How I Got Started
Personal Development
Professional Career