#5.From ad hoc to Optimizing
In the 4th Episode I spoke about “How to Slay a Werewolf”. It was about software engineering – the discipline I’ve been involved in for most of my working life. I ended that episode by describing how, in the late 1990’s, my major interest had become how to help grow and transform the South African ICT (Information and Communications Technology) industry. We’ll start this episode by talking more about this Industry.
THE SAITIS REPORT ON THE SOUTH AFRICAN ICT INDUSTRY
As we discussed in Episode 3, South Africa has one of the oldest IT industries in the world. In the 1990’s it stood at a crossroads. Through the 1980’s international companies withdrew from SA due to sanctions against Apartheid … leaving local companies free to grow and prosper. And then in 1994 everything changed. Sanctions were lifted and suddenly South Africa became a very competitive place for IT companies. International giants with a long history in SA, like IBM, came back and quickly picked up where they had left off. Newer companies like Apple, Microsoft, Sun Microsystems and Oracle quickly gained market share. And then India’s rapidly emerging IT companies started to enter South Africa. All of a sudden local companies had to fight to retain their dominant position.
In the late 1990s the Canadian Government sponsored a major study of the South African IT sector. It was carried out by PWC through the South African Department of Trade and Industry (the dti). The study was called “South African IT Industrial Strategy” or SAITIS. I was involved in the study as a member of one of the working groups. The overall conclusion of SAITIS was that SA’s IT sector had lots of very positive attributes that made it world class and a very important asset for the country. However, there were also some key weaknesses and problems. The SAITIS project produced a number of detailed reports and recommendations (released in 2000). Five of these recommendations most interested me.
The first of these was that the local IT industry needed to begin benchmarking themselves against the rest of the world. In other words local companies needed to look beyond South Africa’s borders and begin comparing how we stack up against international best practice.
The second recommendation was that SA needed to grow the size of its IT sector. We had a really good IT sector, but it was very small. In particular we needed to grow the number of people working in IT. This would involve bringing more young people, more black people and more women into the sector. In the late 1990’s, when SAITIS was doing its research, the local IT sector consisted mostly of aging white men – it looked a bit like me!
The third recommendation was closely linked to the second one … it spoke about skills development. We needed to up-skill existing IT professionals and train the next generation.
The fourth recommendation from SAITIS that interested me was about research, innovation and entrepreneurship. To grow the local IT industry and to make it world class would require a constant stream of innovative new ideas … some of which would turn into new products and new services.
The fifth and final recommendation that I focused on spoke about making SA’s IT industry more visible to the world. We had emerged from the dark days of Apartheid and sanctions. Very few people in the rest of the world knew anything about the South African IT sector … its achievements, its people, its companies. SAITIS recommended that a concerted effort was made to showcase the local IT industry around the world.
There were several other really important recommendations in the SAITIS report. For example, that the cost of telecommunications – including Internet access – should be reduced.
So what happened with the SAITIS report and its recommendations?
The quick answer is “not a lot”, although that’s not quite fair. As I said, in the 1990’s — at the dawn of post-Apartheid South Africa – our local IT industry stood at a crossroads. SAITIS was a really valuable initiative that consulted broadly and drew in a lot of expertise, both local and international. It’s outputs were presented to Government, via the dti, and to the local IT sector, with the expectation that the recommendations would be implemented.
There were, in fact, a few important developments after SAITIS finished its work, but I’m not certain if these were directly as a result of SAITIS, or for other reasons. For example n 2001 the then-President Thabo Mbeki appointed a “Presidential International Advisory Council on Information Society and Development” to “advise him in ensuring that SA does not lag behind with ICT”. It was responsible for “defining the manner in which the global economy functions with respect to ICT”. This Presidential Council consisted of CEO’s and heads of major international corporations and other experts. Members included the international heads of companies like Hewlett Packard (HP), Cisco, Ericssons, Nokia and Siemens. It met annually from 2001 to 2009. In 2009 it was dismantled by Jacob Zuma.
One suggestion of this Presidential Advisory Council was to launch a “national ICT Institute” – some form of “ICT University”. Although the intention was very bold and ambitious it became much less bold and ambitious by the time it was implemented. It landed up as a division within the Council for Scientific and Industrial Research (CSIR) in Pretoria, called the Meraka Institute, launched in 2005. As an unfortunate footnote: Meraka closed in 2019 without making the huge impact that had been visualised by the Presidential Advisory Council.
Another initiative by the Mbeki Government after the SAITIS report was the amendment to the SA Telecommunications Act in 2001 allowing a second national fixed line telecoms operator to be formed – this led to the establishment of Neotel as a competitor to Telkom. (As an aside, Neotel is now called Liquid Telekom). This second operator was meant to dramatically drive down the cost of connectivity. As it has turned out the cost of connectivity and data in South Africa is still far higher than many other countries in the developed world.
I believe that neither Government, nor Industry, seriously responded to the SAITIS recommendations. An opportunity was lost. Sadly this is one of the many examples in post-Apartheid SA of government strategizing and talking and making wonderful plans, but landing up doing nothing, or far too little. Where is the SAITIS Report now? I have a copy saved on my laptop, but I doubt if anyone in Government or Industry would even know that the Report existed.
LAUNCHING THE JCSE AT WITS UNIVERSITY
One relatively small, but very practical and tangible, result that came out of SAITIS was my response to it. In May 2005 I established the Joburg Centre for Software Engineering (JCSE) at Wits University as a direct response to those five SAITIS recommendations I mentioned earlier.
WHAT MOTIVATES ME?
Before I discuss the establishment of the JCSE, I believe I should respond to a question that many people have asked me: Why did I get involved in all of this activity at an Industry and national level? Was it part of my job as an academic at Wits University?
In truth, I find it hard to answer these questions. It is certainly not part of the job description of a Wits professor. An academic at Wits, and most other universities, is expected to teach a few courses, supervise post-graduate students, do their own research and publish a paper or two each year. In addition, senior academics are required to do some administrative work and serve on a few university committees. Most academics do as little of this administrative tasks as they can get away with. Although my academic colleagues will probably object to me saying this, but I believe that a university job is a fairly laid-back existence. The activities I’ve involved myself in, such as developing the CART software to support mass electrification and working to uplift the local IT industry, go far beyond my Wits job description. I suppose that many of my academic peers think I’m completely crazy for getting involved in the things I do. So why do I do it?
I believe that there are two types of people in the world. There are those who look inwards and those who look outwards. The inward-lookers define a circle – a sort of boundary. This circle might enclose only themselves, or their immediate family, or possibly a slightly wider group. They are concerned with the well-being of what lies inside this circle. Everything they do is ultimately for the well-being and support of their inner circle. Everything outside of the circle is seen either as a threat or as something that can be used to benefit the inner circle.
The second type of person still defines a circle around themselves, their family or immediate community, but tends to look outwards. They see themselves as entities in a bigger connected network of other circles. They see their own circle as a resource with an obligation (and a desire) to use this resource to benefit the bigger network. They also extract their own meaning and happiness from being a part of this network.
When I was growing up as a white South African in Johannesburg I was an inward-looker. I come from a family that wasn’t well-off. My parents ran a small retail shop. They worked incredibly hard and made numerous sacrifices to ensure that my two brothers and I had all that we needed and that we were all able to get a good education. I would never have thought of myself as “privileged” particularly when I looked around at some of my peers who had much more “stuff”. They had bigger houses, better clothes, fancier parents and holidays abroad. The reality of Apartheid was that my world was White South Africa. I never really engaged with Black South Africa.
And then, as a 19-year old in my first year at University, I joined an organisation called SAVS (I wrote about this in an episode 2). For the first time I saw how most South Africans lived. On my first SAVS camp we spent two weeks working in a rural village where people lived in mud huts, ate one small meal a day, walked long distances each day to collect water and wood. Many children didn’t have the opportunity to go to school. Some died from easily curable illnesses like gastroenteritis. Most had pot-bellies and skinny limbs, the symptoms of Kwashiorkor a severe protein malnutrition. Nuclear families were non-existent. Women and children lived in the rural village while men went away, maybe for years at a time, as migrant workers to the mines and the cities. It flipped a switch in my brain. I would never be able to be an inward-looker again.
A really nice analogy for how I see the world now is as a coral reef or a rain-forest. These are ecosystems in which everything, large and small, contributes as best as it can to the success of the reef or the forest as a whole.
So, to come back to the question of what motivates me. Almost every major thing I’ve done since my early 20’s: working with SAVS; leaving South Africa to avoid conscription into the Apartheid army; working on secret ANC projects; returning to South Africa as part of the underground; working on mass electrification; launching the JCSE to support the local IT industry; and then things I did after that – these were all ways in which I felt I could play my part (sometimes small, sometimes larger) in achieving a greater goal. There has always been some greater goal that I really believe in.
WHAT IS THE JCSE?
So, back to the Joburg Centre for Software Engineering (JCSE). It was launched in May 2005 as a Wits University Centre in response to some of the recommendations in the SAITIS Report.
I should first explain briefly what a “centre” at a university is. In my mind a University is a bit like a sausage machine. It is designed to do certain things and it does those things really well. Wits and its academic and administrative systems and processes are designed to attract successful matriculants, enrol them into academic programmes and then support their learning until they are ready to leave with a degree. Wits is also designed to support academic research and post-graduate studies. This is the sausage machine and it does very well (or at least relatively well) at supporting these mainstream activities.
On the other hand universities are pretty bad (and Wits is no exception) at doing things outside of these main activities. Most universities struggle to develop engagements with outside stakeholder groups such as companies, communities, government, etc. They aren’t good at running specialised training (outside of their main curriculum) or doing contract research. For this reason universities in many countries have defined the concept of a “centre”. Centres operate outside of the sausage machine. They take on activities that fall outside of the mainstream. To work well, a centre should be allowed by the university to operate in a flexible and agile way without being constrained by some of university’s processes, rules and regulations. In many ways this creates a dynamic tension between a university and its centres. The universities that get this balance right find that a lot of benefits flow via their centres.
Wits has defined the concept of a centre within its organisational framework. I put forward a proposal and the creation of the JCSE was approved by the University’s Council in February 2005. It was formally launched in May 2005. My aim in setting up the JCSE was to use it as a way to coordinate the efforts of Government, Academia and Industry (the so-called triple-helix) to support the success and growth of the South African and African IT sectors. The JCSE would do this by finding ways to implement those SAITIS recommendations that I mentioned earlier.
The 5 goals of the JCSE were stated as follows:
- To support the adoption of world class best practices in software engineering within an African context;
- To build capacity – in other words to grow skills;
- To promote transformation by bringing more people of colour, more women and more young people into the ICT sector;
- To promote research, innovation and entrepreneurship, and
- To work with other stakeholder to promote the South African ICT sector.
So how exactly did the JCSE work to achieve these goals?
When the JCSE was first established I managed to bring in some important partners. These included IBM, Microsoft, Vodacom, FNB and the City of Johannesburg. However, progress was quite slow in the first year or two. Although I had established the JCSE I wasn’t, initially, running it. By 2007 I realised that if my vision for the JCSE was going to be achieved I would need to run it myself on a full-time basis. Wits agreed to let me move over in 2007 from my academic job as a professor in the School of Electrical and Information Engineering to become the full-time Director of the JCSE.
IMPLEMENTING BEST PRACTICES: LESSONS FROM INDIA
I initially decided to focus on the issue around best practices. In 2005 I had the opportunity to visit India to learn about their ICT industry. I was blown away by what I saw.
In the 1960’s India was one of the least developed countries in the world. There was extreme poverty and huge unemployment. Anyone suggesting at that time that India would become one of the top countries in the world in the high-tech field of software development would have been laughed at. One of the most important companies in India at that time (and today) was Tata. It had subsidiaries in many sectors including steel, manufacturing and electrical power systems. In the late 1960’s one of Tata’s top electrical engineers, by the name of FC Kohli, started using an early mainframe computer (called a CDC 3600) for the design and control of electrical power systems. The computer he used was one of the very few computers in India at that time. It was located at a research centre in Bombay called the Tata Institute for Fundamental Research. In 1969 Mr Kohli was appointed as general manager of Tata Consulting Services (TCS) and worked on bringing computers into Tata’s businesses. Today Mr Kohli (who is still alive and in his late 90’s) is recognised as the father of India’s huge and incredibly important IT Industry.
On my visit in 2005 I was hosted by TCS and had the privilege of meeting FC Kohli who was then 81 years old. We surprisingly had a lot in common. We are both electrical engineers, we had both worked on using a mainframe computer to develop control systems and we had both used a computer to design power systems. We had a fantastic discussion, and Mr Kohli instantly became one of my all-time heroes. Speaking to him, and subsequent reading and discussions with others helped me understand how the Indian software industry came about. Let me try to very briefly highlight some of the key moments in its history. (Again – we will do a whole podcast episode on the Indian IT industry and its lessons for Africa).
The key moment was when the American company Burroughs asked TCS to provide programmers for a large project. This was the start of outsourcing of software jobs from the US (and then other developed countries) to India. It became huge. A key issue was how to build trust between the customer (i.e. the company in the US or European Union) that was thinking of sending a software development project to India, and the software development partner in India. Imagine an executive sitting in a corporate headquarters building in New York or Chicago or London making a decision to send a multi-million dollar software development project to Bangalore or Mumbai. If you’ve ever been to Bangalore or Mumbai and seen how completely different it is from New York or London you will understand how difficult such a decision would be. TCS and then other Indian software companies had to convince the world that they were world-class and capable.
MEASURING THE CAPABILITY OF A SOFTWARE DEVELOPMENT TEAM
The Indian IT companies needed a benchmark that measures their capability to undertake large international development projects. Furthermore they needed a benchmark that the US and Europe would trust. So this is where Carnegie Mellon University (CMU) and another of my heroes enters the story. In 1984 the US Department of Defense (DoD), one of the biggest acquirers of software in the world, were becoming increasingly concerned about the fact that software projects were being delivered late, over budget and with quality issues (in Episode 4 I said that this is called “the software crisis”). They funded a research and development centre at CMU in Pittsburgh to deliver innovative methods and tools to deal with these issues. The Software Engineering Institute (SEI) was launched. In 1986 they hired Watts Humphrey, who had recently retired from IBM where he had been the head of software engineering and where he had successfully managed some of the largest software projects ever completed. Watts believed that there is a direct relationship between how you produce something and the quality of the something you produce.
Imagine taking your car into a workshop to be fixed. If the workshop you walk into is a scene of complete chaos, with tools and spare parts and half-fixed cars lying all over the place. Compare this to another workshop with everything neat and tidy, and everything in its place. Which would you expect to do better quality work? In Watts Humphrey’s world, he believed that the better the process the better the product. This is called the “process management premise”. Of course, some would argue that this connection isn’t valid, but Watts and the SEI built their huge reputation on this premise.
So, at the SEI in the late 1980’s Watts Humphrey, who has become known as the “father of Software Quality”, and is definitely one of my all time heroes, developed a process improvement model call the “Software Capability Maturity Model” or Software CMM. It has 5 levels of maturity ranging from “ad hoc” (level 1 ) to “optimizing” (level 5). [Side note: It is this that gives our podcast its name!] A software development organisation can measure their processes against this model, determine the level they are at, and then use the best practices in the model to move to a higher level.
In the 1990’s and 2000’s this model (and its successor called CMMI) became hugely influential in the field of software engineering. Thousands of organisations, from huge companies like Boeing and NASA to tiny software teams, around the world used the SEIs Software CMM and CMMI models to measure and improve their capability. There have been many studies on how these models improved the performance of the software industry. Without doubt they have made a significant positive contribution to the quality of software world-wide.
Critically, to come back to the story about the Indian software industry, TCS and then other Indian software companies, adopted CMMI and worked their way up to maturity level 5. This meant that the corporate executive in Chicago thinking of sending a multimillion dollar software development project to Bangalore would have a benchmark he could trust to convince himself and his board that the Indian company would deliver quality.
This was the lesson I brought back to the JCSE from India after several visits between 2005 and 2007.
BRINGING CMMI TO SOUTH AFRICA
The South African software industry in the mid-2000’s had a huge credibility gap. In 2001, for example, a local company called Tasima, was contracted by the national Department of Transport to develop a vehicle licencing database called eNatis. It became a classic example of over-expenditure and under-delivery. When it was launched in 2007 it was so bad that angry crowds attacked vehicle licencing department offices. This was just one of many local IT projects in both the government and private sector that went bad. In the government space the disasters were all too public, in the private sector (for example, in the banks) failed projects were quietly buried.
In some cases, when local organisations issued tenders for software development projects the question of capability was addressed. An example was my own institution, Wits University. When Wits decided to replace all of the old mainframe programs that ran the university’s student management, finance and HR processes, the University’s management was advised by the internal auditors to specify that any company awarded the contract should be at CMMI maturity level 4 or 5. This immediately ruled out all local software companies, since the only local company with any CMMI rating at that time was Nedbank (who were at level 4). Eventually TCS from India was awarded the contract.
In 2007 the JCSE became the first African partner of the SEI. We applied to the Department of Trade and Industry for funding to “bring CMMI to South Africa” and received just over R5million. We used this money to train instructors (myself included) to teach the SEI’s CMMI courses in South Africa. We also trained two certified appraisers who could carry out the benchmarking of companies against the CMMI model. This dramatically reduced the cost of CMMI adoption in SA. When Nedbank, for example, had worked on adopting CMMI they had used consultants from the UK and USA. Working with these international consultants cost them 10’s of millions of Rands. The JCSE made it possible to get the same training and appraisal for a fraction of the cost using local experts.
As part of the JCSE’s “Bringing CMMI to SA” programme we worked with 5 local companies to pilot CMMI adoption. I hoped that, like it had in India, this would lead to SA playing a part in the huge international outsourcing market for software development. For fairly complex reasons, that I won’t go into now, this never happened. However, the JCSE has over the years helped several local companies realise huge benefits using the CMMI model. Again this will be the topic of a future podcast episode.
Two other major focuses of the JCSE over the past 15 years has been promoting innovation and entrepreneurship and skills development and transformation. These will be the topics of the next two episodes.