Wednesday, April 6, 2016

IONA 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 ‘organised.’ 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.Ultimately Orbix 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, mixing at the 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.

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 to be 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 naturally 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 growing 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, and Asia Pacific in Perth). Internally the company has hierarchical teams of software engineers and management organised around 24 product lines delivering to 3 main operating environments and 20 version variations and other platforms.

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]
Product Managers and others come up with ideas for new products that are then given to an engineering team. A proportion of the resources of the support organisation are also devoted to each product line, this includes dedicated customer support engineers with specialist product knowledge and assignees from other divisions dependent on customer demand levels if the support queue becomes unmanageable. Support engineers will sometimes join an engineering team in a planned manner during a development project to facilitate the transfer of technical product skill and knowledge to the rest of the organisation.

Orbix and ART
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 both develop, support and maintain the products. Orbix has morphed gradually over the years from a simple ORB supporting multiple language mappings and operating system environments (from Java to mainframe systems and PL/I) into 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). However, as the Orbix product architecture has grown, the numbers of engineers developing, supporting and maintaining the product has also grown. This has generated problems for management and interdivisional communication. The old Orbix team has grown to well over 50 programmers and involves 30 or 40 more in support and others in product marketing, documentation, and professional services.

The Orbix product line 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. However the volume of support work from this large and expanding customer base is seen to be eating into the company’s profit margins. Investors want Iona to move forward, beyond the limitations of the original Orbix architecture, an architecture that has gradually become dated as the distributed computing industry shifts towards new technology paradigms like XML based application servers, web services, service oriented architectures and enterprise Java. The ‘top secret’ next generation ART project - started in 1996 in the Boston office - is expected to deliver a paradigm shift in function and performance. The ART team's goal is to build the perfect ORB to replace Orbix, a radically new architecture and framework for next generation ORB related technology.

Engineering Stress: 2000
Back to its roots, 2000 (image credit: Joe McCarthy)
Tim, Jan Willem, and Charlie styled themselves as IONA's ‘junior-management’ team – all of the pain, none of the power – all responsible for Orbix engineering or support. Between them they managed 50 engineers and three product lines. For some time they had been considering their situation and options, or at least the options under their control. There had to be a better way to organise the teams! Many of the engineers in Product Development and Customer Engineering were dissatisfied. Anyone who cared wanted to work on ART, the next generation Abstract Run Time architecture/product. Orbix release work in all its various flavours was seen as a dead-end. The workloads were horrendous, excessive overtime (unpaid) meant that people spent more time with colleagues than they did with their families. The company also wanted to bring in an engineer-on-call system for the out of hours support desk and but people were already putting in heroic efforts just to keep the software stable and customers happy. To top it off word was spreading that the Orbix team was going to become much, much smaller. Something had to break. Comments gathered informally from engineers gave a view of the problems they were dealing with.
“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]
It had become apparent that the cost and complexity of managing the large numbers of people involved in Orbix development and maintenance had reached breaking point and there were diminishing returns for simply adding engineers to the team. The company was grappling with the challenges of balancing time and attention. The resources available for new R&D,  even for ART development, were being dragged down by customer support for current products. Both the senior and junior-management teams were united in being prepared to consider radical and potentially unpalatable steps to address the problem.