Design, Develop, Create

Monday, 2 October 2017

(III) IONA's Genesis - 2 (case)

Preamble:
Leasing Pembroke Street from Crampton's (1995)
In 1991, Dr Chris Horn, Dr Sean Baker and Annrai O’Toole each chipped in £1,000 Irish Punts to bootstrap a business called Iona Technologies. There was no bank loan, no cash flow, and no Enterprise Ireland. I doubt anyone would have put up the money if they had even asked at the time.
They took an educated punt, building on the back of years of academic/industry R&D into distributed systems and programming, supported in part by EU Espirit research programmes.
One of the running jokes in Iona’s newsletter iContact was the management teams’ 3-year search in the wilderness for a business model, but the truth was, that they always had their eyes on the prize and were constantly tweaking the business model to the situation and demands of the market of the day. The way Iona ‘organised’ was the key. It was a young Irish company with a distinctly Irish culture. Small nimble close knit teams, everyone knew everyone and no one let formality get in the way of celebrating success or getting to the heart of a problem. As a place to work it was hectic, razor sharp, direct and fun. And Iona offered a launch pad to a new generation of home-grown technology entrepreneurs and leaders.

Obviously...
Iona’s product Orbix brought Iona success but Orbix was also successful because of the way the company was organised and the way it (the software) 'organised' or structured its customers. Professional services, delivering C++ and object oriented programming training to large multinationals like ICL brought in revenue. The profits from services when straight back into product development and PD delivered the product. The Orbix software in turn drove demand for further services and PS shifted from training to consultancy, integrating Orbix on client sites, understanding in the process how best to design and deploy mission critical cross-platform distributed systems, feeding this knowledge in turn back into better features and functionality for new versions of Orbix and its growing list of adapters, services, language mappings and platforms. Iona had an instinct for the business and economics of software networks a decade before the textbooks came out. They tuned their business model to the market. In a way the business model was built into the architecture of the product, linking software, linking firms, linking markets and people. The business model was evident in how they bootstrapped the market for their product. But the business model wasn’t Iona; Iona was the people. Networking is an intrinsically Irish thing, social banter at coffee docks, the Wine and Cheese, the Summer parties, the Christmas party, catching up after work in McHaffey’s, Tonor’s, Kehoe’s, or Slattery’s. Welcoming someone back from a PS gig in Seattle, politicking Standards at the OMG, attending JavaOne or Iona World.

The period 1999 - 2001 

The resources available for new R&D are being dragged down by customer support for current products. However there appears to be a consensus that a radical solution is needed to address the problem, although no one seems to agree on what the solution is.

Product Development Culture 
Growth is good and profits are better but they have a cost. The cost for Iona’s Dublin headquarters was having to move premises nearly every year. From Westland Row to Pierce Street, to Percy Place, to Pembroke Street Lower, then the big split from Pembroke Street to St Stephen's Green. Stephen's Green would have been nice except that Product Development and Customer Engineering were housed in an old office block tucked behind a Georgian town house while the corporate functions had modern air-conditioned comfort in the building on Pembroke Street. But this was only temporary, Iona had signed as the anchor tenant in a modern tower block on Shelbourne Road. They even had naming rights, "The Iona Technologies Building." This last big move took place in 1999 but the environment was changing in other ways. The atmosphere of the company shifted with each office move and each new employee. The company had been famous for its 'everyone knows everyone else' feel and exciting work culture. However a sense of 'community lost' was increasingly apparent in conversation, the demise of the traditional wine-and-cheese on the last Friday of the month was a symptom of this gradual distancing.
“What’s happening to the monthly ‘wine n cheese’? First it’s reduced to quarterly, and then half yearly... we need it for morale!” [PD engineer]
“The Iona wine and cheese was important, we need these opportunities to mix, to build spirit. Stop cancelling them!” [Anon]
Structure and Organisation
The company is structured around three main development centres; head office in Dublin, the US headquarters in Waltham Massachusetts (aka Boston), and Asia Pacific based in Perth. Internally the company has a hierarchical structure with teams of software engineers and management organised around 24 product lines delivering to 3 main operating environments (Solaris, HPUX and Windows) and over 20 version variations on other platforms (Macintosh, Digital, AS/400, MVS, SCO/Unix, QNX and others).

The Iona Product Development Process has four main stages: Planning, developing, testing & QA, and Launching. The project life cycle provides procedures for the development of products, covering the whole development process from beginning to end.
"Product Development is team-oriented. Teams have strong software engineering capabilities but also have product management, project management, customer service, business and other skills represented. Each team has significant autonomy and discretion on what products it develops, and has responsibility to describe why, when how and by whom the products will be built, licensed etc. Teams are ultimately responsible for product success, measured in market share and revenues." [The dev team guide]
The Product Managers and executive team develop concepts and business cases for new products that are then assigned to an engineering team for development. The support organisation is also organised by product line, this allows dedicated customer support engineers to develop technical product knowledge. All support engineers are expected to also be able to support core Orbix if customer demand levels on the support queues become unmanageable. Support engineers will also sometimes rotate into an engineering team to facilitate the transfer of technical product skill and knowledge to the rest of the organisation.

In order to grow and scale the company's capability it has proactively hired experienced executives and top engineering talent from large international technology companies such as HP, Ericsson, Digital, IBM, and others. These executives are intimately familiar with institutional approaches to organising technology R&D. This includes management system approaches like the Rational Unified Process, ITIL (Information Technology Infrastructure Library), the Capability Maturity Model, and ISO9001.

Orbix and ART
Orbix is the company’s 'cash cow', revenue-rich, mature products that 'only' require maintenance. Cash cows provide a steady income from license fees generated both by new customers, and renewed annual service or support fees from existing customers. In Iona’s case, sales of large site licenses with annual support contracts are a lucrative revenue stream.

The company has experienced consistent continuous growth in market share, revenues and profit in recent years, however rapid corporate growth has led to a situation where product engineering and support has been staffed by as many engineers and managers as it takes to develop, support and maintain the products.

The Orbix product architecture has itself morphed gradually from being a simple ORB (Object Request Broker) to now supporting multiple language mappings (C++, Java, ADA, PL/I) and a wide variety of operating system environments. Orbix is now a fully featured product architecture that reaches into object databases, messaging and transaction systems, media streaming, real-time (there is even talk of an Orbix Nano for chips).

As the Orbix product lines and architecture has grown the numbers of engineers developing, supporting and maintaining the product have also grown. This has generated problems for management and interdivisional communication. The old Orbix team has grown from 3 to well over 50 programmers plus 30 or 40 more in support and others in product marketing, documentation, and professional services.

The cost of supporting the legacy customer base on Orbix is now seen to be eating into the company’s profit margins. The board want to move beyond the limitations of the original Orbix architecture. The distributed computing industry is shifting towards new technology paradigms like XML based application servers, web services, service oriented architectures and enterprise Java.

A ‘top secret’ next generation technology project known as ART was started in 1996. ART development is based in the Boston office. An alpha version for early adopters was given a limited release in 1999, a feature complete beta version is expected in 2000. ART is expected to deliver a paradigm shift in function and performance. ART (Adaptive Runtime Technology) will be a highly flexible and high performance distributed computing engine. ART will be the perfect ORB to replace Orbix and overtake competitive technologies from BEA Systems, Oracle and others.

Engineering Stress:
Back to its roots, 2000 (image credit: Joe McCarthy)
It has become apparent that the challenge of managing the large numbers of people involved in Orbix's development and maintenance is reaching a breaking point. They are experiencing negative returns from the old strategy of just hiring more employees. The company is grappling with the challenges of communication, coordination, cohesion, and balance in managing its large portfolio of legacy and new product development work.

Steve Vinoski, IONA's Chief Architect, is based in Boston but travels to Dublin frequently. Steve is a former systems architect from HP and has long been involved in developing open computing standards, object oriented software, and he has a deep interest in design patterns. He has a wide personal friendship and professional network with other programmers with an interest in programming, architecture and management. Recently Steve has been having an on-going discussion about best practice with Kent Beck. Kent has been promoting a new practice based engineering management approach called "Extreme Programming.

The Dublin-based engineering managers, Mary, Aileen, Tim, Jan Willem, and Charlie, refer to themselves as the 'junior-management' team – all of the pain, none of the power. They are responsible for all Orbix engineering or support. Between them they manage 50 engineers and are responsible for all maintenance of all legacy products.

Steve has asked the engineering managers to consider the current situation and their options for improving things. There must be a better way to organise the teams! Many of the engineers in Product Development and Customer Engineering are working on legacy Orbix and seem deeply unhappy. Anyone who cares wants to work on ART, Iona's next generation architecture/product. Many of them feel that working on Orbix in all its various versions and flavours is a dead-end job. To top it off the workloads have grown horrendous; there is a real problem with excessive overtime (unpaid), meaning that people are spending more time with colleagues than they do with their families. The CEO has also let it be known that he wants to bring in an on-call rota to provide out-of-hours software support 24-7-365. But the engineers are already putting in huge hours and making heroic efforts just build and release patches and keep customers happy. There is also a rumour that an executive order is in the pipeline, that the Orbix team is going to be cut. It feels like something is going to break.

Comments gathered from a recent internal survey carried out by HR give a flavour of the mood.
'More inter-departmental cooperation please, people feel guilty asking questions.' [Anon]
'Get CE and Engineering teams working closer and get rid of the quick fix mentality.' [PD engineer]
'Outrageous workloads are destroying me, there must be an end in sight?!' [CE engineer]
“Product milestone dates come down from ‘on high’, the teams should estimate them, not some diktat.” [PD engineer]
'The company is a fun and challenging place to work, it’s "challenging" when we over-commit…' [CE engineer]
'We need workable processes to get us moving between teams and products.' [CE engineer]