Posted on 13th September 2023

What makes successful software

And why I'm starting my UX journey

Note: This article draws my own experiences in my career as inspiration, but the examples given have been modified and don't directly relate to any specific companies or individuals and no criticism of anyone in particular is meant or implied.

A slight rant

You start out in the software industry full of the hope of working with bright minds building great things. Stick it out long enough and you will, but it's not a linear progression. The nature of the business is that one day you could be building 'the next big thing'. But unexpectedly that project is scrapped completely and you're then being asked to change a document template in an application 'so it can be printed in black and white'. Some of the discussions you might be involved with can be mind-numbing, for example listening to the leadership team at your company debate inventing their own micro blogging platform to publish PR updates, instead of just using an existing platform. You might be asked to attend a call with a client who berates your company's software engineers because your system has 'crashed', only to find in this case the 'crashed' system is in fact a screenshot in a help guide he's clicked on that's opened in a new tab in his browser.

Every so often you're asked to engage in an exciting project involving AI. Usually it turns out the customer has no budget to spend on the system, and no idea what they actually want to achieve. Even with the rise in new forms of AI and genuine applications for them, the propensity for bogus pipedreams endures.

Sometimes you get to do exciting things. It can be a fantastic career offering many great opportunities. My own experience has included many highlights and relatively few low points. But almost everyone in the industry will have stories of strange and bizarre things you end up being asked to design, build, present, and maintain:

I've met a CEO with ambitions to implement cutting edge automation in their company. A laudable aim perhaps, but it doesn't work when they're adamant that it must be built on top of decades old software, written by a company that no longer exists.

I've been asked to build demos of software from scratch for clients to present to multi national corporations in less than a week. Somehow a myth persists that by using the latest technology the timeframe to develop a high-profile proof of concept can be drastically compressed. Spoiler alert: it can't.

I've met people who've built businesses from nothing which now employ around 50 staff, not one of whom is responsible for their company's IT. How on earth they think they're not one step away from catastrophe by not having someone onsite or at least on the payroll that can manage their technology is baffling.

I've been in meetings with potential customers who seem to have serious operational or financial difficulties that somehow a piece of software is supposed to fix. There are many things software can help with. Cutting costs and building time-saving capabilities can be some of those things, but implementing any technology requires realistic expectations and substantial investment.

A classic example of the problem

In a previous job, I remember desperately trying to complete a demo for a potential client in a couple of weeks. I was asked to create new integrations of our software with multiple APIs, present the data in ways the software wasn't intended to and 'include some machine learning' too. There were no solid requirements, use cases or scope. The client was simply demanding an unpaid demo of 'something', justified by the fact they'd already spent money on a couple of train tickets to meet with a company who may have been interested in our software and it could be a great opportunity for all parties.

Projects like this aren't ready for someone to write a single line of code. What they require is significant design input. Without doing the groundwork, the unnecessary pressure caused by this back-to-front approach, and in this case a breakdown of communication, is incredibly stressful for those involved. It is no surprise to me now as an experienced developer this particular project went nowhere despite me burning the midnight oil to have something ready in time. It really wouldn't have made a blind bit of difference if I presented the most technically impressive piece of software known to man given we had no idea what the end-user's needs really were.

Even well specified projects require a guiding design hand at different stages. That's what helps you to experiment with and refine solutions. While many software engineers like myself do their best to interpret poorly communicated requirements, it is not the way forward for our industry (nor are we generally the best at communicating what we need!).

What is the way forward

I've learnt and grown from these things, and am now comfortable to ask the necessary, sometimes difficult, questions to avoid ending up in such situations. I've worked with others to deliver transformational projects, seeing them through to completion and beyond, building lasting relationships with clients and users. Some of these even started out as the situations mentioned above.

The problem is that people can lose their way when it comes to technology. They get blindsided when they start believing technology is magic, perhaps seduced by hype and aggressive sales tactics. But it will only solve problems if you understand what it is you're currently doing and what it is you want to do different. Not even today's most impressive AI chat bots can guess what it is you want, or decide what it is you really need.

We are partly to blame, as industry professionals, for failing to communicate with non-technical people effectively. Despite us doing this stuff for decades, I'm not aware of any holistic framework for communicating technical change. That makes it hard work, and part of the problem is the focus on technology itself.

I would never discourage someone from coming up with ideas for how to utilise technology in their work, regardless of their technical knowledge. But I would encourage them to focus on what it is they're trying to achieve first, before jumping into how it might be achieved.

Anyone wanting more from their technology should consider getting professional advice from a reputable consultant (or employing someone with decent credentials). It will be immensely helpful if they have qualifications or a background in user experience (UX).

You can measure the caliber of their work in many ways, but one of the best indicators is the quality of their communication. Not only should they communicate with you well, they should be helping you to better communicate your needs too. Hiring such people costs money, but the alternative of flying blind is guaranteed to be even more expensive.

Before we try to build the next 'AI enabled-crypto-blockchain-dashboard' we need to take time to understand our own intentions, as well as our organisations, colleagues, customers and users.

It's up to software industry professionals to open people up to the possibilites and opportunities available when we focus on user needs throughout the process of delivering new technology.

Some of the biggest user experience wins I've implemented as a developer have been simple things. For example where a user has mentioned the pain of carrying out a repetitive task such as deleting a row in a table. Simply adding the ability to carry it out in bulk is a tangible and time saving capability, and the success of its implementation is easily measurable.

Often though, there is no mechanism for such user needs to come to the fore. In this case a developer happens to talk to a user, they happen to mention it to someone with decision making power and they happen to be receptive to it. That's leaving an awful lot to chance!

It's not the fault of any one person involved in the chain of technological change. People just need more help focusing on user needs, exploring the possibilities and communicating their intentions with technology. I believe this is a frontier in the industry that will continue to grow and endure in contrast to the transient nature of how things are implemented and what specific tools are used.

That's why I'm working to improve my own skillset for this type of work and expanding my experience of it. I've now spent a good chunk of my career in a role which requires close involvement with clients and in that time I've felt a need to widen the range of services offered to them. Hence, I'm going 'back to school' to gain a better appreciation of how to serve those needs.

Better design is at the heart of what so many businesses I've worked with are crying out for. I'm not just talking about visual user interface 'styling', but the whole approach to interaction with a product or service. That's why I'm enrolling in a course that covers User Experience and Interaction Design.

I'm hoping this equips me with the ability to assist with the whole process of designing digital products. Whether it is websites, software or apps, I want to be a part of building technology that isn't just for technology's sake, but technology that helps users acheive their goals and is actually enjoyable to use.