I attended a talk on Friday by Kennedy Kahiri about the relationship – often adversarial – between software developers and designers. Developers, he said, are interested in building the right thing, while designers tend to be focused on building the thing right. These different priorities can lead to conflict. He outlined seven things you can focus on to avoid these conflicts:
Be collaborators, not competitors
Process should be inclusive, not siloed
Work by compromise, not ultimatums
Build for the customer, not for your own ego
Be flexible. Adapt to realities. Don’t be stubborn/rigid about decisions
Before designing or coding, understand WHY you are doing this, and what problem you are solving
Build something that solves a problem, and has a positive impact on business
As an Amazonian, of course, it all comes back to #4 – the focus on the customer first in all decisions leads to the best solutions.
On Friday at Droidcon, one of the sessions I attended was titled “Mastering Colour”, presented by Pamela Chemutai. She spent a lot of time talking about color theory, and about what colors go together in color schemes, but also why they go together, from a color theory perspective.
I don’t have a lot of notes from this session, but three things stand out.
She talked about color associations. For example, red is associated with danger, green with safety. I wonder if this is learned, or universal? Is it cultural? Does it change over time? Do we see colors with the same associations as ancient Greeks, for example? I am sure someone has written about this.
On the topic of color blindness, she recommended the website WhoCanUse, where you can experiment with different color schemes, and determine what people with different visual acuity will see.
Finally, on a completely unrelated topic, Pamela mentioned that she is a student at Dedan Kimathi University. Dedan Kimathi was a leader during the Mau Mau revolution. What’s fascinating to me about him is that when I was a kid, it was just known that Kimathi was a terrorist, a murderer, a generally terrible person. But today he is revered as one of the fathers of the Kenyan nation. There’s a statue of him downtown Nairobi. And several roads named after him.
(To be clear, I am not suggesting that he *was* a terrible person. I’m saying that how you learn a story depends almost entirely on who is telling it.)
I have long been fascinated by the question of who is a terrorist and who is a freedom fighter. It usually depends on who wins. George Washington, for example, was a terrorist and a rebel. But then he won, and he was a hero and a statesman.
Robert Mugabe is even more interesting, because first he was a terrorist (or a revolutionary). Then he was a hero, and the president, and the founder of the nation. And then he was a despot the destroyer of the economy.
So, yeah, huge tangent there, but I made a note that I need to read more about Kimathi, and about Mau Mau in general. And if you’re looking for recommendations, I encourage you to read Let’s Not Go To The Dogs Tonight by Alexandra Fuller, for a view of the Rhodesia/Zimbabwe revolution, from the perspective of an ex-pat living there at the time.
On Friday morning at Droidcon, the keynote was given by John Kimani, developer ecosystem manager at Google. He talked about the state of the Android ecosystem, and also about what’s coming next in Android.
There were a lot of fascinating statistics in the talk. Two that stood out:
There were 1 Billion Android devices activated in 2022.
There are currently 3 Billion Android devices active in the world. This includes not just phones, but also watches and cars, among other things.
Another interesting thing that he talked about was memory requirements – specifically, that in Android 11 and earlier, there was a specific focus on keeping the OS small, so that it could run on older devices. This is particularly important in the African market, where there are lots of older devices in rural areas. The focus on low memory footprint meant that Android apps were typically also low footprint, and available to those customers.
But in the latest Android versions, that is no longer required, and as of 11, devices with less than 1Gb are no longer supported. This means that 60% of Kenyan customers can not run the latest version of Android.
American and European software companies do tend to ignore the rest of the world, in the rush for the latest and fanciest. Another talk I attended emphasized the importance of visiting your customer *before* you start developing, so that you can ensure that you’re designing for them, rather than for your own ego. (Link goes here, once I’ve written that one up.)
Day 5 was spent all day at Droidcon, so I don’t have much more to write other than to mention that I attended a couple of talks, including one on WearOS development.
Then, on the way back to the hotel, I shared a cab with Louis and Rosario. Louis, who had given another talk about WearOS earlier that day, was wearing four different WearOS watches, and showed me some of how the different ones work differently.
He also offered a bunch of sample code, as well as suggestions of what I might work on – he says he’s got lots of ideas and no time to implement them. I might take him up on that.
Much like the Android Auto presentation earlier in the day, this made me curious about doing some WearOS development. Major challenges – I don’t have a WearOS device, and I don’t have any actual ideas for something that I’d want to build for a watch. But, still, it looks very, very cool. And the frameworks for building apps look really easy to work with.
Or maybe it’s just that Kenichi and Josh were great presenters.
This is the kind of talk that I love attending – where I come away with a passion to try a new thing. Even though I realize that finding time for this is going to be very challenging.
Benard Ngoda presented on Android Auto development, which made me want to tinker with Android app dev. Maybe.
There are two main Android platforms for cars.
Android Auto is a platform for writing Android apps that are installed, and run, on a mobile phone, but can export some element of the UI to the car head unit.
Automotive OS, on the other hand, is for apps that are installed directly on the head unit itself. This is, as far as I can tell, harder, because every auto manufacturer, as well as every after-market car head unit manufacturer, have their own custom spin/distribution of it.
Benard’s github repo has a bunch of sample code for getting started. Apparently the best IDE for doing this is Android Studio. It’s unclear to me if you must use Android Studio, but it seems that everyone does.
I’ve alluded a few times to driving in Kenya, so here’s a little more on that topic.
It is terrifying. And the drivers seem completely at ease with the terror.
There are no stop lights. No stop signs. Barely any signs of any kind. And the drivers just know what to do. I was amazed by how few dents I saw on cars while I was there.
I did see some traffic lights while was there, 2 or 3 times, but they were purely decorative. Nobody was paying the least bit of attention them. And I did, in fact, see a stop sign once or twice. There was no evidence that anyone else was aware of what it meant.
When you come to a major intersection (did I mention, no lights or signs?) people just go. They find a gap, and they go for it, and the other drivers look like they’re not going to let them in, but somehow it works out. Clearance around cars is inches, at best, but it all somehow works out, with very few accidents.
And then sometimes, traffic just … stops. For 10, 15, 20 minutes. Just stops. And then something clears up, and it starts again. This happens a lot in the evenings.
There were numerous situations where we’d be flying along at 125kph (75 mph) and then suddenly we’d be at a standstill. As you inched along, you’d realize that a matatu (passenger bus) had just stopped in the road. Sometimes in the middle lane. Sometimes to pick up and drop off passengers, but sometimes it was because they had broken down, and were fixing it, right there, in the middle of the road. This was not an isolated event.
Meanwhile, among all of this, bicycles and motorcycles and pedestrians are all just weaving around among traffic, and I didn’t see one crash the entire time I was there.
Oh, also, any time the traffic slows down, there are vendors walking between the lanes selling everything, from food to live animals to toys to windshield wipers. I saw one guy selling neck ties, soccer balls, and an inflated Spiderman. Another had dog leashes and slingshots. And another had a book and two scrabble games. All just wandering in and out of traffic while we were driving along.
On the way to the airport on the last evening, the driver had a music video playing on the car stereo screen. Which seemed somehow not very safe. But he was navigating traffic just fine.
And then there are speed bumps. Just randomly, you’ll encounter a speed bump, And they are huge, such that most cars end up crabbing over them to avoid high-centering or, best case, scraping the bottom of the car on them. And folks don’t seem to be at all bothered by this.
When I left Nairobi, the population was just under 1 million. It’s now around 4.5 million, and a huge percentage of those people have cars, which was not the case in 1988.
There’s a fancy new expressway that goes from Westlands to the airport. You can get there in less than 20 minutes, even when traffic is terrible. It’s elevated, and is built in the median of other roads. Most people use the lower road, since the upper road is a toll road, so the expressway is largely empty.
It turns out that there’s more to this story, though.
This entire expressway was built in just 8 months. This happened because the outgoing president, Uhuru Kenyatta, wanted to leave a legacy, and realized that he was running out of time. So he made a huge deal with the Chinese government to come in and build this. Also, he happens to have a large interest in the construction that happened to get the contract. And this was largely done without the government approving it. He just … did it.
So there’s definitely a love/hate thing with the road. It greatly improves traffic – although only for a subset of the drivers who want to pay a toll. But it leaves the country with a huge debt to pay – both financial, and in leverage by the Chinese government.
Also, in the process, thousands of trees were cut down, which gave a lot of shade to pedestrians. And it’s made it very difficult for pedestrians to get certain places, because the construction destroyed a lot of sidewalks in places where there used to be a lot of pedestrian traffic. People were very upset by the trees, some of which were decades old and popular gathering places.
I briefly considered renting a car, when I was planning this trip. I’m awful glad I didn’t.
The best session I attended on Wednesday – day one of Droidcon.ke – was “Developer Communities and their Impact” – (Wayne Gakuo, Tabitha Kavyu, Naamini Yonazi, Eric Ampire ) – Moderators – Jacqui Gitau
The panelists are community managers in various communities, in various countries, and had a lot of great insight for the audience. I just wanted to highlight a few of these.
Tabitha talked about how people new to communities will try to emulate prominent community leaders, and as a result the communities become a cult of personality, rather than a diverse community of individuals. She stressed that community participation is a process, and that you should embrace where you are in that process. Don’t try to be someone else. Be yourself. And this isn’t just for yourself, but for the health of the community as a whole. Communities draw strength from the diversity of individuals.
Eric talked about burnout and delegation. He said it’s so important not to make yourself indispensable, or you will never have a free moment ever again. Ensure that if you take a week off, things keep happening. If nothing can happen when you’re not there, then you have failed as a community leader. Delegate, and then let people fail, or do it in their own way – don’t yank it back, or you will, once again, ensure that you are the bottleneck of all community activity.
This is definitely a mistake that I have made in the past – setting up process such that nothing could happen without me. And this is indeed a recipe for burnout.
I wish I had taken more notes. Wayne and Naamini also had great insights, and this was the highlight of the event for me.
Not that I’d want to take these folks from their communities, but if you’re looking for community managers, these four really get it.
Today was the first day of Droidcon, which was, of course, my actual excuse for coming to Kenya in the first place.
Uber picked me up at 7:30ish – my talk was to start at 9 – and it started raining on the way to the venue. Kenya has been in drought all year, and it’s been getting worse over the last few years, so rain is very welcome. But it rained HARD.
I should mention that everywhere in Nairobi has LOTS of security. High walls, high gates, and at least one askari (watchman) guarding the entrance, checking ID, looking under the car with mirrors. This is everywhere. And the driver didn’t want to go through the hassle of going through the gate, just to go back out again.
So, after a few minutes, Marvin came to get me and walk me to the auditorium, which was about a quarter mile walk into campus. But on the way there, it started raining in earnest. Zero visibility, and instant drenched to the skin raining. We took shelter in a student cafe, and got some chai to sit and wait.
African tea, which we always called chai growing up, is tea brewed with as much milk as sugar. It’s amazing, and fresh Kenya tea, in Kenya, is even better. I may have overdosed a little on the chai while I was there.
Marvin called for umbrellas, which never materialized, but eventually the rain slowed enough that we decided to make a run for it, and arrived at the auditorium soaked.
9 came and went, and there were very few attendees there yet. Around 10 the rain stopped, and people started trickling in, and at 11 Frank decided that it was sufficiently populated to start.
I gave my talk – an overview of how the Apache Software Foundation governs projects, and how you can run your project the Apache way as well, even if you don’t see the need for a foundation. It was, I think, well received, and I continued getting comments about it, and deeper conversations, all week long, so overall I’m pleased, even though the attendance was pretty paltry.
I attended sessions most of the day, and will write about each of those individually. See this post for the listing of those, once I get them written.
At the end of the day, Frank wanted to take me to dinner, and asked where I wanted to go. I said, I want to go where you would go if you were picking. This turned out to be very wise.
I caught a ride with one of the other speakers, and went to a little restaurant in the CBD (Central Business District) where they served food from Frank’s part of the country – Nakuru area. Grilled fish. Greens, Ugali. So, so, so good.
I got back to the hotel at 10ish, and once again crashed hard. Overall, an amazing day, and very satisfying. The content at the event was fantastic. The conversations with brilliant young African developers were even more fantastic.
This morning I walked over to the “Maasai Mall”, which is a collection of little stores, all selling mostly the same stuff, for tourists. I presume the tour companies bring their foreigners here to buy stuff.
It’s set up as a dozen independent stores, but they are clearly all working together, and the rivalry between them is part of the show. But when it comes time to pay, they all defer to the boss man, who collects the money.
I got a couple of kikois, ad several shukas, and a few other things. They asked for 25,000ksh and I ended up paying 13,000, which I’m sure was still twice what a local would pay. But it’s all part of the experience, right? (The shilling is currently about 120 to the dollar.)
The history of the shuka is interesting, by the way. Worth doing a little reading about. These brightly colored woven cloths didn’t start to become part of Maasai dress until they were introduced as part of european trade, but have become inextricably connected with the Maasai now. Also, they’re great as a blanket, a table cloth, a dress, a skirt, whatever you need at the moment.
At lunch time, my highschool friend Sandeep picked me up for lunch, with her driver. I had a chance to talk with him – David – a little about the fascinating art of driving in Nairobi. More on that later.
We went to the Muthaiga club, which I always dreamed of going to, as a kid. It’s the pinnacle of ex-pat (specifically English) high society social gathering places in Kenya.
If you’ve seen Out Of Africa, and remember, there’s a moment where Karen Blixen is invited, finally, to have a whisky with The Men in the private bar. That bar is still there, and is still men-only, except one day a year when the women are allowed in. Yes. Still. In 2022. The English overseas are always far more English than the English.
I had the fried tilapia, and OH MY WORD it was good. I used to love tilapia. It is, by far, the best fish in the world. And then I moved to the US, where tilapia is sad tasteless frozen briquettes of sadness. But in Kenya, when it’s fresh out of the lake, and not from a farm thousands of miles away, it’s absolutely amazing.
I had a great time catching up with Sandeep, and seeing where life has taken her. 34 years is, indeed, a lifetime.
On the way back to the Jacaranda, Sandeep dropped me off at the Village Market, which is a delightful little mall, where I bought some more overpriced gifts for family and friends. And yet, it was still far less than I would have paid for the same items imported to the US, so I’ll fool myself and say I got a deal.
In the afternoon I worked out on the courtyard for a few hours. Annoyingly, people don’t stop sending me email when I’m traveling.