Last month while I was visiting Ashesi University in Ghana, I met with a few students (two in CS, and one in the MIS program) and talked to them about what they want to build when they leave Ashesi and what they see as their biggest future challenges. One of the CS majors talked about wanting to build a software company, and how he saw his biggest challenge as getting customers to use the software and apps that he builds.

That conversation stuck with me. In the moment, I suggested that he think about inverting that statement: how can he build software that users are compelled to get their hands on and use?

I’ve been thinking about Google a lot recently (partly spurred by reading In the Plex), and in particular the combination of heavily data-driven decision making and their intense focus on doing what’s right for users. There’s a fine balance to strike in building software, weighing understanding what users want to do and what will make them happy while innovating in ways that users might not even know they want. We struggled with this at Mifos, and often ended up in the no man’s land between the two ends of the spectrum, dragged down by a never-ending list of feature requests while trying to build for the future of microfinance. In the end, we didn’t do either one terribly well and that hurt our market traction.

The right fundamental principle is to find user pain and solve it, whether the user knows that pain exists or not. This assumes that pain is indeed pain… if solving the pain doesn’t get noticed by users (whether measured by clicks on ads or by hardcore business process improvements in a microfinance institution), you probably were wrong about the pain point. This is where metrics and data come in, and picking the right metrics is critical. Collecting data that you can sift, mine, and find interesting correlations in helps a ton – you can test multiple hypotheses quickly – but it’s not always easy to collect user data. This, too, was a real struggle with Mifos and it’s something that Google very clearly both a) understands well and b) is really well positioned to act on.

For budding software entrepreneurs like the guy I talked to at Ashesi, the right approach will evolve as his business evolves. By starting with a few core principles (find the data that matters and understand it, ruthlessly make users happy) he’s likely to succeed. If he instead goes down the path of “I built something cool, now I have to convince people to use it” he’s likely to find it much harder to get real traction.

One of the challenges in building a strong, world-class software industry in Africa is the lack in experienced software developers, product managers, and entrepreneurs. There are plenty of smart, energetic people coming out of universities like Ashesi and Makerere looking at several possible career paths. They can go and work for a large organization, like a bank or telco; they can join a smaller company or startup; or, they can go and found their own startup. For the latter two – joining a small startup or creating their own – many of these students are at a disadvantage. They have little or no real-world experience in creating finished software, product plans, test plans, and all the other things that bridge the gap between academic learning (key) and real-world software companies (also key).

The goal with the plan I’ve been working on in Ghana is to help bridge that gap, creating stronger software developers and entrepreneurs that lead to stronger software companies. One idea that we’re considering is the creation of a Software Entrepreneur Residency program within a larger African Center for Open Source and Software Entrepreneurship (ACOSSE). This is akin to a medical residency, but for software entrepreneurs instead of medical doctors.

The key elements of the residency program would be:

  • An 18-24 month commitment on the part of the resident
  • Work on a full-time, paid basis in a software company affiliated with ACOSSE
  • Work on real problems that move the business forward
  • Rotate through multiple disciplines; for example, spend 3 months in test, 3 in development, 3 in product management, 3 in customer support, 3 in sales, etc.
  • Work under supervision of a designated mentor who helps both with the work and with career and personal development
  • Participate in continuing education programs on software engineering and entrepreneurship (run by ACOSSE)

The residency would smooth the transition from academic learning to the deep-end of real-world startups, and would significantly broaden the exposure of software engineers to the entire cycle of the business. A software engineer with a great idea who has been on sales calls, fixed bugs, built a test plan, and helped customers with support issues will have a much better idea of how to build both a business and a great software product.

(Pixar appears to have an internal version of this for recent grads as well)

Yesterday I had a great chat with Bridgette Sexton at Google Ghana and got a rundown on their experience with software talent in Africa. Most of what I heard from Bridgette confirmed and deepened the learning from my time in Ghana last month, but I learned several new things and we had a great discussion about some of the core challenges to building a strong software industry in Africa (which go well beyond the talent gap).

Let’s start with the talent gap, though. There are plenty of raw recruits out in the market, coming out of universities and other training programs with a reasonable set of web development skills (PHP, HTML, etc.). Those skills tend to be fairly shallow, though, and haven’t been honed or augmented with real-world experience. On the other side of the equation, there’s plenty of demand for software developers… but most companies need developers who have built real products, not just learned how to code in school, and those same companies tend not to have the resources to invest in the high-touch mentoring that’s needed to get a raw recruit to a developer who is ready to dive into an existing software company.

There are also plenty of people out trying to build software companies on their own – Bridgette’s seen them all across the continent – but those entrepreneurs tend to run into two challenges. First, they have no experience in shipping software. They can build software, but it often ends up as an unfinished product that can’t be taken to market; maybe they get 80% of the way there and stop, or run into an insurmountable problem, or whatever. Second, many entrepreneurs lack a deep understanding of viable software business models. Mobile app developers, for example, might want to just ship an app and start getting paid rather than looking at freemium or ad-supported models.

Part of the challenge, too, is that what constitutes a “viable software business model” in Africa is likely to be very different here than in the US, Europe, or Asia. Desktop computer usage is extremely low, and instead the communications vehicle of choice is a mobile phone. Most of those phones are feature phones (as opposed to smart phones), and companies like Google are doing some great work to make the internet more accessible on feature phones but it’s a much more fragmented environment than anywhere else I’ve been, and usage patterns look nothing like they do in the rest of the world.

I saw the beginnings of a vibrant community around software development in Nairobi, particularly around iHub and m:lab, and Bridgette said that there are many others around Africa working on solving what is a very hard and complex problem. There may be opportunities – some are in discussion – to bring the various actors together in a more structured way. Getting investors into the equation here is key, especially investors interested in providing seed stage capital to promising startups.

Potential solutions

The scenarios I’m working on in both Ghana and Kenya have the potential to contribute to some of these challenges. No single organization is going to solve all of the challenges, but I had a couple of takeaways after yesterday’s meeting.

First, one of the challenges in mentorship and building strong entrepreneurs is that taking a fresh graduate and dropping them straight into a startup environment isn’t the best way to teach them how to build finished products and business models. Mentoring from industry leaders is great, but it often comes once every few weeks at best. With a Mifos organization that is functioning partly as a working software company and partly as a software talent incubator, we can fill a few gaps. We can give young developers something manageable to work on – a feature, or an API – rather than expecting them to learn everything all at once. We can also engage them in teams of more experienced developers to learn what it means to work as part of a software team and to learn first-hand from more experienced developers in a deeply engaged, high touch way.

Second, we can explore gradually getting broader experience for these developers by giving them freelance opportunities with other companies. Many software companies in Africa need help on a short-term basis (“get me a J2ME coder, stat!”) and we may be able to build some sustainability into the model by contracting out the developers learning within the organization and giving them some sort of revenue share arrangement.

Many thanks to Bridgette Sexton at Google for her insights and passion around building stronger developer communities in Africa. The above ideas blend a lot of what I heard from Bridgette with some of the ideas we’re exploring for Mifos in Africa.

As part of my current exploration of opportunities for Mifos in Africa, I’m building out two different business plans. The first, detailed here, would create an Institute for Open Source and Software Entrepreneurship (IOSSE – just a working name) based in Accra, Ghana. The second, which I’ll outline in a future post, would create an investment organization and R&D lab (loosely modeled on MPOWER Labs) based in Nairobi, with an initial focus on building a Mifos company that delivers a mobile-centric experience.

For the IOSSE in Accra, the primary goals will be:

  • Work as part of the global Mifos community to foster further software development and innovation in Mifos and to work closely with Mifos specialists and MFIs in sub-Saharan Africa to maximize the positive impact of Mifos for the poor
  • Work as part of the local software community to develop and nurture software entrepreneurs in Africa
  • Support the development and impact of open source software in Africa

The core idea is to build a small organization that is actively working with real customers, initially focused on Mifos but later expanding to other open source projects, and that partners with local organizations (such as Ashesi University and MEST) to provide opportunities for local software entrepreneurs to gain real-world experience, learn from more experienced software developers and entrepreneurs, and contribute to open source projects that have an impact in Africa.

Continue reading »

© 2011 On Safari with Oldupai George Suffusion theme by Sayontan Sinha (modified)