• Robert J. Brotherus

Excel-revolution at Steel Factory in 1989

Updated: Jul 16

I got my first paid job as software developer at age of 16 in the summer of 1989. This was at the time in history when Personal Computers were appearing on desks of managers at offices and factories, challenging and slowly chipping away the status-quo of mainframes and mini-computers of the era. That provided unlikely niche for some self-taught computer-geeks like me to participate in wild development of real factory production-systems in a way that would be difficult to envision today.

The history of the Billnäs Steel Spring factory in Finlands South-West coastal area goes back all the way to 1641 when Carl Billsten built the first iron factory close to the rapids of river Mustio. The industrial companies that continued the tradition of these initial factories had lots of ups and downs during the centuries that followed, eventually diversifying to various steel products. Steel leaf-spring production was started in Billnäs in 1920s and Billnäs springs become known for their high quality and used in railway cars and trucks by customers like Volvo, Scania, Man and Finnish VR-Railways. During the years the spring-factory changed owner many times in various industrial re-arrangements and its name changed from Billnäs to Fiskars in 1959, to Ovako in 1979, to Ovako Steel in 1986, to Imatra Steel in 1990 and to Styria in 2003.

Karjaa comprehensive school

I got connected to the Ovako Steel factory thanks to Ensio "Enska" Virtanen who was in 1989 working as student counsellor at Karjaa Comprehensive School. The Finnish comprehensive school curriculum includes a period of work-training where the students need to find a company that is willing to employ them for a nominal salary for two weeks. Usually such jobs are simple and don't require special skills. But Enska been building extensive set of connections to the local companies and he had keen eye for special skills of his students like my Commodore 64 programming hobby . So when my time for finding work-training come in spring 1989, he was able to "sell" me as a computer-geek and grandson of industrialist Perh Sommar to Matti Toivonen, the production-planning manager at the Ovako factory.


Pushing Lotus Symphony to the limit

Working with Lotus Symphony spreadsheet

The two-week training at the factory did not yet include any proper programming: the tasks that Matti gave me were mostly involving spreadsheet processing and development with Lotus Symphony spreadsheet (very similar to the more famous Lotus 1-2-3) running on MS DOS. The two-week training went well enough for Ovako and Matti to offer me contract for two-month summer-work in the summer of 1989. I was quite happy of this opportunity - better than the job of picking strawberries that I had been considering if I don't find anything more suitable.


Lotus Symphony continued to be the main tool during the summer months. But this time the tasks become more advanced: writing Lotus macro-programs for more complex spreadsheet applications. While I do like programming in principle, the Lotus Symphony macro-programming capabilities were by far the most limited I have ever encountered - even more restricted than the simple Commodore 64 BASIC -features that I was most familiar with.


The Lotus macros were mainly meant for repeating a fixed static sequence of keypresses that would enter data to the spreadsheet cells or execute menu commands. The keypresses would be stored in a spreadsheet document column and when executed could open and work on another documents. For example, some macro-program sheet cell A25 could have "/WCCS23" which would perform menu-command Worksheet-Config-Column-Set-23 which would set the current column width to 23 characters. (For a taste of how those macros look like, see this website for small examples)


Such keystroke-playback-system can hardly be called a programming language. It has no statements for structure, no statements for loops, no variables, no dynamic behavior. With static sequence of operations, it seems impossible tool for any general processing. But in the absence of better alternatives at that point I discovered a super hacky way to make the system Turing-complete: write code that writes code at runtime. For example the macro cell A24 would contain expression that concatenates string "/WCCS" with the (dynamic) value of some "variable" cell (say F3) and then place the result to cell A25. If the cell F3 contained, say, number 17, when the constructed command string generated to A25 would be "/WCCS17" and then when execution would next proceed to A25 that would be executed to set current column width to 17.


Needless to say, such "dynamic" macro-program is even much less readable (and extremely bug-prone) compared to the already horrific static mess. But I got some spreadsheet automation applications working in this way during the summer and Matti and his colleagues were were able to save some time with the resulting automation in the factory production-planning office. And having started my professional careet with such nightmarishly challenging programming environment, any subsequent improvements since then have felt very delightful 😉


Raising the bar: The ODETTE EDI-project


Towards the end of the summer a plan for a more ambitious project started to take place. This was related to the process of main customers like Volvo and Scania placing orders for springs. In 1989 this order-process still involved customers weekly printing order-listings from their own production-planning systems and sending them to Ovako by mail. These documents contained tens of pages of tables enumerating the order-counts of different spring-products for several weeks to the future. These were then entered (manually, by typing keyboard) to the Ovako factory mini-computer system and formed basis for the scheduling of various production activities like running factory machines, warehouse-operations and ordering of raw-materials.

To replace the use of paper with Electronic Data Interchange (EDI) in this and related processes, several automotive industry members had been creating industry-standards group ODETTE (Organization for Data Exchange by Tele Transmission in Europe) in 1984. In the summer of 1989 the standards for first critically needed electronic documents were ready: ORDERR-message for purchase order, ORDCHG-message for order change, REPORD-message for order response and DELINS-message for delivery-forecast. Furthermore, Ovako main customers Volvo and Scania had been implementing support for these messages to their systems and ready to send them to Ovako. Ovako production-planners were also eager to get rid of the mountains of paper-printouts accumulating on their desks every week.


Before summer 1989 was over, a plan had been formulated: I would develop a software-system for (1) reading, processing and merging ODETTE order-messages from Ovako customers into central order repository, (2) for each shipment of products generate related ODETTE-messages and (3) generate and print standard shipping labels with barcodes for shipment-boxes. More detailed specifications would be provided by Matti Toivonen and Kai Bredenberg from Ovako IT-department. The project would be started still during my summer-work period and when my school-year started I would continue programming in evenings and weekends. I was paid 50 Finnish Marks per hour (about 20 €/h in today's money adjusted for inflation). I would work mostly from home (Ovako would provide a computer for me), occasionally visiting the office to deliver and test new versions of the application.


MS Excel 2.0 to the rescue


It was clear that this far more ambitious project required more advanced tools than the limited Symphony macros. And that gap was filled with the very first version of Microsoft Excel on the Windows-platform.

Excel 2.0, the first Excel on Windows

While Microsoft made the original Excel 1.0 already in 1985, that version was only for the Apple Macintosh computer. The first version for their own Windows-platform was launched in 1987 and had version-number 2.0. In the fall of 1989 this miracle-software landed at my hands at Ovako and oh-boy what an improvement it was over the Lotus Symphony! It is not wonder that Excel eventually won the spreadsheet wars and the word "Excel" even become synonymous with "spreadsheet".


But in summer of 1989 Excel was still a rare beast and struggling to gain foothold over the established Lotus products. But, making things worse for Microsoft, Windows was also not yet very widely used in its 2.1 incarnation whereas everyone had MS-DOS (with Lotus run on), so the requirement of having Windows in order to use Excel seemed pretty limiting. Microsoft solved this chicken-and-egg problem in a way that sounds quite crazy today: Excel 2.0 come with mini-version of Windows built-in. So, on my Ovako-laptop I could just write "excel" at the DOS-prompt and that would launch Windows and Excel 2.0 on top of that! And although Excel was already very feature-rich in its initial version, it was not bloated in terms of resources: with my 12 MHz 286 PC with 1 MB RAM the total launching of Windows + Excel from MS-DOS prompt took only 8 seconds! With my current PC having 16 000 times more memory and 2 000 times faster processor and 500 times faster hard-drive, the startup-time of this combo is still much slower.


Excel Macro-power

Very simple XLM macro

The best thing in Excel over Lotus spreadsheets was vastly more powerful macro-language. While this was not yet the Visual Basic for Applications (which come many years later in Excel 5.0), it was something that actually resembled a real programming-language with variables and structures and programming-oriented statements and functions. These XLM-macros become the cornerstone of the Ovako spring-factory ODETTE-system I developed.


Since this was time before online documentation and tutorials, I had to read the actual paper-manual of Excel to get familiar with the macro-language syntax and functions. After that the project progressed well and I felt I was able to find suitable Excel macro-features for the project features without resorting to significant hacks. Kai Bredenberg recalled in 2022 that "At the time we in Ovako IT had estimated that it would take a month at minimum for you to learn Excel and do significant develoment. We were most surprised that you had essentially completed the application in two weeks."


At times the processing power of the 286 PC:s of the time were bit stretched: a typical customer order-message contained 10 000 order-lines and after importing to Excel these had to be sorted before merging to the main order-sheet. Such sorting-task sounds trivial by today's standards, but on those PC:s it could take over a minute. I guess the excessive slowness was because the data would not fit at one time to the 1 MB main memory - or what was free from the memory for spreadsheet data after loading of Windows and Excel - requiring Excel to swap parts of the dataset to disk and back.


The system was started to be used for real factory order processing and production planning quite soon in autumn 1989. Feature addition continued after that and in addition to Excel I adopted some other tools to the system, like a faster pre-processor for the ODETTE-messages with QuickBasic.


I have no records on how many hours I worked for the project in the end, but after the initial summer work in 1989 I continued to be employed by the company part-time all the way to summer 1990 and then again full-time until autumn 1990 when I left to study to the Atlantic College high-school in Wales. Perhaps 10 hours per week is realistic estimate, making the total hours somewhere around 500 from the part-time period and 300 more from the summer 1990.

Local newspaper interviewed me (in Finnish) in August 1990 after I received scholarship to study at Atlantic College. Topics included the programming work at Ovako.

The demise of the Mini-computer era


It is worth noting that that none of the tasks during the two years in ODETTE-project involved any development on the factory main production planning minicomputer-system. That system was based in a IBM-minicomputer from 1970's running in a separate room and controlled with black-green terminals. It ran customized warehouse inventory and production planning software "TERTTU" developed earlier in a classic waterfall-process by Finnish Tietotehdas-corporation (predecessor Tieto Oy, then Tietoevry Oyj). It produced long reports in form of printed lists. None of the reports were obtainable in real-time: All the report requests done by Matti during a day were processed and printed during night - a large contrast to the more agile PC-based tools that we eventually developed.


The minicomputer running TERTTU-software was towards the end of my time at Ovako replaced by IBM AS/400 minicomputer running the OS/400 operating system (AS/400 was launched by IBM August 1988) and equally closed software system.


The IBM-minicomputers and its software was a closed system that did not allow easy extension or improvements by 3rd parties after the initial software was "ready" (not that any software is ever really ready). Perhaps incorporating ODETTE-message processing could have been added to this system with a hefty price-tag. While the closedness of such systems was probably maximizing the profit of their suppliers in the short term, in the long term this turned against them as more and more extensions and adaptations moved to the more agile and free PC-platforms and eventually lead to demise of the close mainframe/mini-computer environments.


Continuing my journey

My employment certificate from Ovako

During my high-school studies in Atlantic College is was impossible for me to work on the project part-time. Not only was the study- and activity-schedule at this boarding-school very tight, but this was before internet and communicating between Wales and Finland was restricted to paper mail and prohibitively expensive long-distance phone-calls.


In my 1991 summer holiday from Atlantic College, I once more worked for Ovako ODETTE-project, adding more features to the system. That was the last time: In summer 1992 I was travelling around the world and then in fall 1992 started in Helsinki University my studies of chemistry, physics, mathematics and computer science.


Kai Bredenberg - who had been meanwhile moved from Ovako employee to independent consult - did contact me once more when I was living in Helsinki. Kai asked if I would be interested in continuing ODETTE-processing based consulting / programming work with him - there would be apparently many possible client companies that could utilize our skills. I declined, noting that I was fully occupied by my studies. At that time, I was still determined to pursue academic career in natural sciences and that programming would be a side-thing in my career. Perhaps I would have answered differently if I would have known that later in 2000 I would nevertheless leave the academic world for a career in software companies.


The old Billnäs leaf-spring factory building in 2009 - not producing springs any more

Since my departure, the Billnäs steel-spring factory continued its operation, changing occasionally ownership and name. Until the last owner, Frauenthal Group, decided to close the factory in 2006, just three years after acquiring it from previous owner Wärtsilä in 2003 and renaming it "Styria Springs". At that time the factory was employing about 100 people and annual sales were about 17 million euros. The factory would probably still have been competitive on the market on its own, but Frauenthal was purchasing several steel-spring makers and then proceeding to eliminate their "over-capacity", ending the century of production of high-quality steel-springs at Billnäs.

But my Excel-based ODETTE order-handling system continued its life even after the end of the Billnäs factory. Kai Bredenberg had in 1993 started his own company and bought the rights to the software from Ovako. The application turned out to be general enough to be sold by him to several other companies in the automotive industry. Last customer moved away from the Excel-macro-based ODETTE-processing software as late as 2016, giving it an unexpected 27-year lifespan in Automotive industry.

149 views0 comments

Recent Posts

See All