by Prof Barry Dwolatzky
What does a “Big Mac with French Fries” have in common with software jobs in South Africa? At first glance …. not much, but I plan to change that!
Bear with me while I explain this important relationship: When I left SA to live in London in the 1980’s I came to know the McDonald’s Big Mac Hamburger really well. As a poor post-doctoral researcher at Imperial College I realised that I could buy a meal of known quality, taste and nutritional value (or lack thereof) at a very modest price if I sought out the local McDonald’s. More than that – wherever I travelled around the world I could get the same hamburger at almost the same price. When I returned to SA in the early 1990’s I found that the Big Mac had also returned from exile. I could buy that same familiar burger at a McDonald’s “family restaurant” in Sandton, Sea Point and Port Elizabeth.
Okay – you’re still no closer to seeing the connection between burgers and software development! Let us reflect, however, on McDonald’s secret to success. How does it achieve such excellent consistency and predictability? What is McDonald’s business model? The famous hamburger chain, like many other international fast-food brands, is a franchise. As the “franchisor” McDonald’s has done the following:
- It created the brand and the “brand promise”. McDonald’s continues to spend a huge amount on advertising to ensure that almost everyone on the globe understands what their brand offers consumers;
- It developed an “operations manual” to support its brand promise. Anyone setting up a McDonald’s restaurant will find procedures, processes and recipes in the operations manual covering everything from what colour to paint the walls to how to clean a fryer to how to set out the weekly financial reports;
- It provides standard training that helps “franchisees” (those who operate a restaurant) train their staff to work according to the “operations manual”. In many parts of the world one will find McDonald’s training centres called “hamburger universities”;
- It quality assures its franchisees. In this way it ensures that each McDonald’s outlet follows the methods as prescribed in the operations manual and achieves the “brand promise”.
And what about the franchisees? What’s in it for them? By buying a McDonald’s franchise they are NOT setting up their own business in the true sense of the word. They are buying the right to operate a restaurant within the narrow constraints defined within McDonald’s operations manual. Why should they do this? Simply because they have a significantly higher chance of success. Research has shown that running a franchise gives the franchisee between 2 and 12 times better chance of success than running a similar business on his own.
The other key element is that the franchisee sets up the business from scratch. One doesn’t take a “mom-and-pop” corner hamburger joint and attempt to convert it into a McDonald’s. You would shut the old store, tear down the building, rebuild and re-equip it as prescribed in the operations manual, recruit and train new staff and then run it as a McDonald’s.
Now … let us imagine a world …. where software development follows the same business model as a fast-food franchise. (I can hear a chorus of raised voices telling me that developing software is not even vaguely similar to making hamburgers! Again, please bear with me.)
We start by defining a brand. My “brand promise” says that “Barry’s Software House” is able to produce and deliver software applications to order (i.e. bespoke development). I promise that each project I undertake will be delivered:
- within 10% of the scheduled date;
- within 5% of allocated budget;
- having less than 0.5 defects per 1,000 lines of code (KLOC) in delivered software.
This promise is impressive because international industry benchmarks, and current best practice in the South African software sector, shows that software projects are delivered:
- 27% to 112% late;
- 17% to 85% over budget, and
- Having 2 to 7 defects per KLOC.
In other words “Barry’s Software House” promises to be significantly better than any other software developer in South Africa and on a par with the best in the world. Furthermore my promise is not simply a promise. I will collect data from every project to show that I’m meeting my performance targets.
How will my software house achieve these performance targets? I will develop an operations manual based on known and proven industry best practice. I will draw heavily on the work of the Software Engineering Institute (SEI) in the USA. My processes will be based on CMMI. My methods will be based on the Team Software Process (TSP), Personal Software Process (PSP) and various agile practices. I will seek out and integrate best of breed tools to support my operations. Everything set out in my operations manual will be designed to ensure that my targets are met in a quantifiable, data-driven, repeatable and predictable manner.
Together with my operations manual will be training. This will include both existing courses (such as those offered by the SEI) and new curricula that I will develop. Individuals completing the training will receive various levels of certification.
In setting up “Barry’s Software House” I will use the franchise model. My own organisation will be the franchisor, defining and advertising the brand promise, creating the operations manual and developing and certifying training curricula. My organisation will also quality assure and certify franchisees.
These franchisees will be any individual or organisation that wants to acquire the “Barry’s Software House” franchise. The prerequisite is that they will set up the software development operation from scratch, will follow my operations manual exactly, recruit and train staff as I require, and undergo quality assurance activities.
Since these franchise operations are being established from scratch I will be able to count the number of new jobs created. My intention is that each franchise will employ about 25 people. In this way, by establishing 40 such operations over a 3 year period, I will have created 1,000 new jobs.
But … where will all these skilled people come from, and where will all the software projects come from to keep them busy.
As they say in the best TV sitcoms – my story is “to be continued” in the next blog that I post.
In the meantime, any comments – either supportive or howls of derision – will be welcome.
Great idea Prof Barry, when can I buy one?
The key difference between a global burger frying chain and “Barry’s Software House” is that the burger frying chain is /not/ doing “bespoke development”. A restaurant which CAN do “bespoke development” –i.e.: a restaurant in which the chef can cook upon order /anything/ that you would like to eat– is most likely to be a restaurant with at least 1 star (*) in the prestiguous Michelin Guide, but certainly /not/ a global burger frying chain.
Thus, if you want to do software engineering in /full/ analogy to the modus operandi of franchised burger frying, then you would have to mass-produce un-bespoke standardized software components for an anonymous mass-market of software component (re)-users, whereby the standardised software components would find their analogy in the standardised hamburgers, cheeseburgers, etc. which are emitted in massive numbers by your global burger franchise.
(By the way, I’m also writing these lines in hindsight to our annual Hons.-degree course “Component-based Software Development” which we have just started again at the beginning of this new semester 2011 in Pretoria.)
Hi Camilo,
Our first step is to run a pilot – then we will be looking for possible “franchisees”
Regards
Barry
Hi Stefan (Happy New Year!!)
After I post something on my blog I always look out eagerly for a comment from you. I know that you will make me think a little harder!
I take your point. Yes – I really do appreciate the difference between mass producing hamburgers and developing bespoke software. I guess the problem with analogies is that they never quite fit.
My idea is to set up a bespoke software development team from scatch. To lay down best practice processes and methods. These will be drawn from lessons contained in CMMI, TSP, PSP, Agile, etc. They will also be informed (if appropriate) by the type of techniques you teach in your “Component-based Software Development” course. Developers will be trained to work according to the defined “operations manual”.
My contention is that by doing this the software team will have a very good chance of producing bespoke software of the quality and predictability I listed above. This is not wishful thinking because I have visited teams who do just that. Examples are Intuit, Adobe and Navair in the US and Softech in Mexico. Their success is based on the types of processes and methods I plan to adopt. Furthermore, this is not hype or propoganda – they have data to prove it.
Please keep the comments coming, and have a GREAT 2011.
Great idea ,i can definitely see it working. I think this will definitely work much easier if you train software developers with no or little experience in other development methodologies because from experience i have noticed that most developers are resistant to this type of change.They might change just because management says so but their heads might not be 100% in it. How do you plan to get around this resistance and make a strong team with one goal?Because for this to work you need full cooperation of the whole team.
Couldn’t resist adding this, courtesy of Stafford Maisie:
Walking on water and developing software from a specification are easy if both are frozen – Edward V Berard
Software developers scarce in SA – a relevant story this week
By Jacob Nthoiwa, ITWeb journalist.
Johannesburg, 16 Feb 2011
SA appears to be in particular need of software developers with a strong background in .Net, Java, PHP and C#. says CareerWeb’s Ernie Hipner.
Software developers at skilled and senior level are most sought-after in terms of job opportunities; however businesses find it particularly difficult to fill vacancies of this sort, career experts point out.
According to CareerJunction, the high demand for software developers with these skills creates a competitive environment for recruiters. “On the other hand, it provides career seekers with many job opportunities,” it adds.
General-manager of CareerWeb, Ernie Hipner, says businesses in SA appear to be in particular need of software developers with a strong background in .Net, Java, PHP and C#. “But there are not enough developers with these necessary skills.”
“Developers across various languages and experience levels are in high demand. The market is also always in demand for good project managers, both permanent and contracting, plus support roles, especially for [voice-over-Internet protocol] and telecoms,” he adds.
Workplace ready
A developer and platform lead at Microsoft SA, Clifford de Wet, says the problem is that there is an undersupply of degree level skills and workplace ready developer skills in these fields.
“Developers that are workplace ready are in high demand, most of development partners are permanently looking to attract new developers and retain their existing skills.
“We see a marked trend where employers are looking for workplace ready skills and a recent study by the ICT Isett Seta revealed that there is an oversupply of diploma level skills versus an undersupply of degree level skills,” he points out.
Hipner says by looking for software developers with some sort of experience, companies are making it difficult sometimes to enter the market.
However, he says: “There are some companies on a drive to take on grads or entry level candidates and train them further while building actual experience.”
He says he does not feel that training is the problem, but rather a combination of factors. “Not enough candidates qualify with math or science marks, which leads to candidates obtaining tertiary education.” This leads to a fewer candidates entering the software development side, especially in C# and Java.
The antidote
De Wet says the answer to the skills shortage problem is initiatives – like Mircosoft’s Imagine Cup – which encourage software development skills.
“Students get to build working prototypes and solutions while still at school. In a way it’s some sort of hands on experience,” he adds.
According to CareerJunction, the skills shortage of developers is seen predominantly in the regions of Gauteng and the Western Cape.
It says a high concentration of qualified software developers reside in other regions of SA, especially in the Eastern Cape, Mpumalanga and Limpopo provinces.
“Employers and recruiters are, therefore, encouraged to cast their net wider and look at relocation strategies to fill their positions,” it says.
Relocation of talent might positively contribute to a broader strategy that includes the retaining, training and up-skilling of existing and future staff.
Article printout from ITWeb courtesy of Lexmark South Africa
Moreover I believe that “Barry’s Software House” is too much focused on software construction, at the expense of software maintainance. Let us assume that 1 local franchise shop of “Barry’s Software House” has 15 programmers. After they have successfully delivered some project P1, they will start with project P2, but at the same time they will be asked to perform some recurrent maintainance tasks for the old project P1. Later, while they are busy with a new project P3, they will be asked to do maintainance for P1 and P2, etc. Eventually, they will have to do more maintainance per time-unit than new developments.
Indeed, if Barry’s aim and goal is “job creation”, then we should be aware of those proportions. I believe that many more “jobs” could be created in the area of software maintainance –with all the terabytes of software code that already exist!– than in the area of software construction.
If you are looking for another analogy, then look at the automobile industry: There are some centre spots of car production located in particularly developed areas in some countries, but /globally/ you can find a dense network of car-garages and repair-shops where you can get your vehicle fixed. Those little car-garages are not production-franchises; they are maintainance franchises. And on a global scale, these maintainance franchises all together employ more workers than the few production centres from which the cars initially emerged.
Even the best car needs maintainance from time to time, and so also even the best software will need maintainance from time to time. By analogy with the world of cars, I believe that “Barry’s Software House” could create far more jobs (than initially planned) by re-inventing itself as “Barry’s Software Maintainance House”.
If franchises is any individual or organization that you will except it.because you first capable organization who have experience.