Opinion

Do all software engineers care about customer impact?

I got into a fun chat with my friends about unengaged people at work. Do software engineers care about salary, solving a problem technically (discovery), shipping, or does that work has to have impact in someone else’s life? Of course, different people find joy in many points within this spectrum of outcomes.

Interesting question surfaced: is it that some people don’t find joy in having impact in others or have they just not had the opportunity to make that deep connection to their work? I mean, nothing wrong with just finding joy in solving problems, right?

I referenced 2 stories from my past.

I used to go to church multiple times a week and be involved in many religious activities. I was happy and I never really thought past the bubble I was in. Then my circumstances changed with where I lived, my closest friends’ life circumstances etc. It led to me inspecting the bigger “why’s” of life. As a result, I incrementally focused my energies elsewhere and dropped out of church.

Second story was just me as a software engineer. I loved experimenting with new technologies and making fun little UI apps. As a teenager, I had an obsession with how traffic lights worked. I found it really fun to code road junction in Java Swing UI. It was a fun way to learn Java but also… just liked figuring out how things worked.

Then I made a jump to building some iOS apps with my brother. I’ve written about this before. Watching us have direct impact in someone else’s day was just incredible. I was working for Vigil Systems at the time where we guaranteed 15% reduction in public transport accidents (sketchy memory on this metric). These things mattered to people. The direct interaction and knowing how my work helped people was a wonderful feeling.

After that, I always wanted something more. It wasn’t just enough to write good code or ship things quickly. I wanted to know my code made a difference and it helped people to make time or be better off in some way.

So, is it that some don’t get to experience this moment in time that helps them break out and think beyond their Jira cards? If you are starting off in a big technology company, it is really difficult to have this direct connection to customers to begin with. Most developers I work wth never had to explain to a customer how to find a feature in the interface they coded in. By the way, it is extremely frustrating to see people struggle with what you’ve built.

This image came to mind… this is Maslow’s hierarchy of needs:

Are we just thinking about people in different stages of this pyramid? Does everyone have the opportunity to attain self-actualisation? Does self-actualisation mean having direct impact in others?

I think it is pretty important to generate that connection at some point. But we should remember that sometimes, we find meaning in having impact in others’ lives… and sometimes, discovering is just as important. The very act of making and having fun can lead to things. We don’t have a clear purpose in life. So these competing forces — this chaos — keeps us vibrant and moving forward.

Whatever it is for you, I am hoping you find engagement and joy at work. It helped you stay motivated. If your current work doesn’t give you that, find something that does.

Related article to read: How to burnout a software engineer, in 3 easy steps.

App Store

Something we used to talk about in university was the impact an operating system can have on people. A system designer imagines the future and creates capabilities that its users can leverage. It is a form of influence on users to adopt the imagined future. Users, however, behave in unpredictable ways. A system starts to take a life of its own when users leverage these capabilities in creative and innovative ways the author didn't anticipate. This leads to a relationship between the two parties where they influence the future together through observation, experimentation and imagination.

Mobile operating systems are the most impactful operating system of our day. Billions of people are in a serious, intimate relationship with their mobile devices. This relationship, however, is not a traditional 2-way pairing. Modern operating systems have APIs that application developers can take advantage to enter into this conversation between users and system authors.

App stores are a crucial piece of this relationship. They directly impact the type of relationships we have and who we meet in this ecosystem. That shapes our experience and our future.

Apple should be careful steering its App Store.

App Store policies have a specific function: policies keep the ecosystem at a healthy state. Healthy ecosystems grow and flourish. Apple's main viewpoint in keeping its store healthy is to create a safe environment. This ecosystem is diverse, many of whom are non-tech-sperts (like my mum), who needs help with technology. This is a good strategic differentiation for Apple's brand and offering.

Safety has a lot of layers. To name a few: protecting users from scams, preventing issues on devices, enforcing age appropriate content and privacy, are all parts of feeling safe. These help users.

Developers also need safety. That is done by having access to robust tools, cover from external pressures (like litigation) and an environment where they can compete fairly to gain the favour of users.

App Store does implement many policies around these issues. They scan applications, weed out bad actors, have features like "privacy labels" to ensure transparency. For developers, they provide tools, APIs that make it easier to build wonderful experiences and at times, protection from litigation (from pesky patent trolls).

The issue is that App Store policies aren't all targeted at creating a "healthy ecosystem". They are also targeted at the ecosystem yielding high revenue. Now that most people who needs an iPhone has an iPhone, growth has to come from services and future hardware products. App Store revenue is important to this formula. This is similar to issues faced by Netflix: successful companies running out of room to grow.

There are few spots being targeted for revenue on the App Store: payments, ads and competing services.

Ads are not on brand for Apple. It is a premium product, nobody wants to see cheap casino ads. The issue here is that ads are in direct competition with privacy. Good ads are context sensitive and relevant to the user. Recent ads debacles show that they need to dive deeper to make a great ads product (the kind Kevin Systrom will be proud of).

The payments situation is a mess. There was clear thinking around app sales tax (30%) and in-app purchases for a while. However, users and developers are behaving in unpredictable ways. Technology is moving quickly with new payment types and ways to deliver experiences. The system author has given rise to these innovations but now has to grapple with the reality that they don't generate revenue.

Few things come to mind:

  • Bitcoin, Blockchains and NFTs have ushered in new ways to own and purchase goods. App Store policies are hurting NFT trading altogether.
  • Games are moving towards subscriptions and "stream on any device" models. App Store policies simply don't allow for such innovations to play in the ecosystem.
  • Modern day social media was born out of iPhones. Their existence has transformed many areas like marketing, shopping and entertainment. App Store is yet again trying to apply old rules onto these new spaces.

Read more: Apple flexes its control over App Store

These actions show App Store is unprepared for the innovation that is flourishing in the ecosystem.

Beyond payments, Apple is competing with other services in the App Store like music streaming. This is causing developers to realise the relationship is not built on mutual trust and equality. There is a clear dominant party here.

So, there are some problems.

Apple's focus has been to increase revenue from its service offerings. That has required them to test the boundaries of the relationship they have with developers and users. All the while, the platform is moving forward in unpredictable ways. Innovation is taking place under their noses.

I think it is time for Apple to observe and adjust its policies and systems so that innovation continues on their platform. I dislike seeing developers pull features from their apps on iOS. It is feeling like owning an iPhone has become a disadvantage.

There is nothing wrong with getting return on the investments made on these amazing devices and software platforms. It has to be done in a way that doesn't strain the relationship we have with them. The only real way to make long term revenue from services is to work on keeping the ecosystem healthy. It needs to stay safe and have room to grow.