It is late at night. You have Google Maps open on your phone and you have your phone hooked up to your car stereo speakers, this way you can listen to music and hear the directions at the same time. The road is pitch black...there is probably no electricity in this part of town or the government has not changed the bulbs for the streets lights, it doesn't matter, you have your high beams on. You see flashlights ahead, you sigh, you know whats about to happen next.
"Oga Good Evening!" you say to the Police Officer as you wind down your windows and turn on your inner lights. It is a typical police checkpoint, you start wondering how little you have to pay for them to let you keep moving in peace. It's your lucky day, after a little chat they wave you on. Suddenly you are faced with a fork in the road ahead. On the right is a dirt road, on the left, is a tarred road. You can see there is construction on this road, which one is the right one to take? You look to Google maps for help, there is none. You make an executive decision you go left at the fork. Its the most developed road this has to be the right one. It does not take long for you to find out you were wrong. After driving for 15 seconds from the last checkpoint you suddenly see a traffic officer leap out of what looks like pure darkness. If you had not seen this act many times while growing up in Nigeria you would think it was magic. Now he is frantically waving for you to stop, you can bearly make-out what he is screaming since you have your windows up, but you can read his lips, he is screaming "One Way" at that point you realize you have been set up.
The next few minutes happen very quickly. Suddenly he is sitting in your passenger seat, explaining to you the law you have broken. He explains that he now has the right to impound your car and the cost of getting your car out will be steep, he explains that if this is the second traffic offense you are committing you're required by law to do a psychiatric assessment, he dishes out blow after blow explaining the dire situation you are in. If you were a foreigner you would have pissed your pants by now, but you are not, this is your third incident of this kind this month so you are calm, he is even using the same lines as the officers from the previous two incidents, its like these officers go to the same FEAR school, at this point it all just sounds like a bad elaborate joke from The Game. Just when you think the list of penalties won't end the officer says "So Oga wetin we go do now?" for those unaccustomed that's code for how much bribe do you want to pay so I can let you go.
Anyone who has driven in Nigeria has a variation of this story, this is a symptom of a broken system. When I say broken system, I am not talking about the corruption in the Nigerian government or police force or whatever. This is not that kind of post. I am talking about system in the sense of a set of principles or procedures in which something is done. The purpose of the traffic police here is to prevent accidents and they are supposed to achieve this by enforcing traffic laws so that there are fewer accidents, but due to the way the system is set up it is to their benefit for people to break the law and in the worst cases they encourage it. This is not peculiar to Nigeria, in the United States traffic cops use Speed Traps to meet their monthly quotas. These are what we call Dark patterns in software engineering.
Dark Patterns are a user interface that has been carefully crafted to trick users into doing things they may not necessarily have wanted to do. In software engineering, we build systems all the time. We build systems that humans interact with and one of the hallmarks of a bad system is the presence of dark patterns. These usually appear when the goals of the creator of the software and the user are not aligned. You see this everywhere these days. This is when an advert pops up when you clicked the play button on that video site. You see this when you visit a site and suddenly you get an alert that says your computer has a virus and you should download some anti-virus software with a download button conveniently placed front and center. The web developer is trying to get "paid" for you visiting their site but they are promising you "free movies".
I started thinking deeply about this last week, a friend of mine created a brilliant little service and we were brainstorming on how to expand the revenue stream from what he already has. I found myself pitching an idea of him selling notifications for available exam slots that probably won't be available by the time the customers actually got there to sign up, cause the customers are competing with bots to register but the customer does not necessarily know this. As a joke, he mentioned how Igbo I was and that's when I caught myself. I realized I was designing a system with an incentive structure where the app does not make money based on the success of the customer, but makes money in spite of the customer's success. This is initially sounds like a brilliant idea but this is a slippery slope. This is bad design. A good system design is a system that the revenue generated is directly proportional to the number of successful/satisfied clients. Now I am not pitching this cause I am holy or trying to be the next mother Theresa, its just good business, any model apart from this is not sustainable and will eventually collapse over time. Customers will wisen up or try to out smart the model and business will dry out.
Many times Dark patterns in applications are created innocently. In order to sustain the service you try to get clients to do things that are not necessarily against them but does not further their agenda and as this starts to work you build on top of this bad structure, it continues until the end result seems like a joke of a system, that solves no one's problems, it probably makes it worse. This is what has happened to the Nigerian Traffic Police. If they were incentivized correctly there would be a sign telling people the right way to go on the fork or the officers at the previous checkpoint will alert you of the confusion ahead. Also in the U.S if your department's funding is not based on how many criminals you catch but more on how many lives are saved, maybe there would be more signs saying, "Slope ahead, watch your speed".
Thinking about the incentive structures of the systems I create and aligning my success with reaching a solution for those I serve is critical for running a successful business. It will help me build less frustrating applications that will be a joy to my clients and create a sustainable business for me.
Subscribe to The Art of Coding
Get the latest posts delivered right to your inbox