Technology is all about relationships and solving problems

Raj Geriya
scaps
Published in
5 min readApr 18, 2020

Working as a software developer has taught me about what kind of challenges an engineer, a business and its users face during the process of development.

The need for a phone/communication device started when people wanted to communicate over distances, it solved an important problem, The need to travel physically which was a big deal as the amount of effort and resources required we’re too much to send across a telegram/mail. And then people had better problems. How to get different kinds of information across physical distances.

Problems in life come in many ways. some are simple and some need a little more thought. Because of limitations of time, restrictions of resources, even other problems. It’s only natural to try to solve as them as quickly as possible trying to fix the symptoms, this could lead to actual problems never being addressed. One needs to reach the root cause of the symptom to get to the actual problem. A technique called 5 (could be less or more) why’s is a common way to reach the root cause of a problem. A common UX journey goes like this.

User is not able to click a picture, Why?

They’re unable to find the right button, Why ? (they because users are gender-neutral)

There are too many options on one screen and it’s difficult to figure out which button does what, Why?

Solution: Reduce the number of buttons and prioritize which actions are most important for the user. Make the important buttons bigger and rest could be smaller.

It’s very important to understand the usual smartphone user and how they function. I like to see it as building a relationship with a user. They do the following things.

Make Assumptions: Why? because they have limited time, there are many other apps on their phone. Why? Apps serve a limited amount of features and there is no time for them to learn a new system.

Get interrupted: While using any app, how many times you’ve received a notification saw it, went back to the app, and couldn’t figure out what you were doing. Again users are busy with their life. They could have many things going in the background also.

Cognitive capacity: Based on a lot of factors people have different cognitive capacities to process information, Cognitive load is immediate input of information or stimuli the working memory has to process. If the person receives too much information at once, they will experience Cognitive Overload. By reducing cognitive overload one can maximize the usability of a design, and even the laziest of users won’t be overwhelmed.

Their Context: A user trying to send a message to a loved one will have a different frame of mind compared to a user trying to watch a video. That’s why it’s important to understand what kind of thoughts and feelings they are going through while trying to solve the problem.

Habits: A habit is a routine of behavior that is repeated regularly and tends to occur subconsciously. So it’s very important to see what kind of habits a user might’ve formed and carefully make changes in what is already existing. Big structural or flow changes will only make it harder as they’ll have to learn and form a new habit, which has a high cost.

Association with the app: Uniquely repeating colors, icons, patterns create a stronger association in a user’s mind with the app. Which makes it easy to recall the app even if they’re not using the app.

Forming habits which solve their problems completely is the ultimate goal.

Why Habits?

For an app to be sustainable, it needs repeat user engagement, It should be a part of human existence which should happen on a frequency, and the more frequent user would need help solving problems, more opportunities are created which can be turned into features and offerings for the product.

Habits = Repeated Engagement = BIZNE$$

I also feel that is our duty to help users form healthy habits and not take unhealthy shortcuts just to make the user stay on the app without purpose, (check dark design patterns) because in the end it’ll waste their time, make them feel worse and that’s an unhealthy relationship according to me.

On the technical side of an app, there are Engineers.

There are several ways to provide a technical solution. The industry is ever constantly evolving and changing. Platforms, Clouds, Programming languages, etc. It can be one too many and they come with their own set of problems and challenges, Even choosing just a technology can become difficult as there are so many options. So prioritizing the correct ones becomes super important because again, there are limitations of time and resources. Planning of data, technology, architecture, and workflows is very important because these are the foundation of a product, A strong foundation allows agility in development of product and faster delivery of features.

Maintenance of the existing system is also critical, adding something new shouldn’t break what was already working, It’s important to have a WHY to change an already working piece of code. If the reasons are not big enough or important enough then it doesn’t make sense to do that change business-wise and even the rewards might not be beneficial enough for the user or the big picture.

Engineers are also users of such tools, to assist their tasks. They also form habits with these tools, languages. It’s natural to stick to something which one already knows as it’ll have quickest turnaround time rather than trying to address what the problem needs, Using a known technology is always great if it’s solving the problem well, there will be a smaller learning curve, but that might not be the best way to go all the time.

Many times we try to fit a solution rather than building/inventing one. I’ve done it many times in the past to save time. Starting with a clean slate might feel hard to accomplish but keeping in mind fundamental principles of system design like maintainability, scalability, compatibility, performance, etc. and trying to come up with a solution is the way to go in my opinion. One doesn’t need to know a certain technology, a language or a platform fully to its capabilities also, Just complete enough to address everything the problem needs and aligns with principles.

Inventing a full solution feels so much more rewarding than trying to fit an existing one.

Change is a process that requires its own time and patience.

I feel it’s best to see this as a relationship between a variety of people. Because once a problem is fully solved, newer problems will arise. Newer problems give a chance for a higher degree of learning, growth, and ultimately happiness.

It’s a relationship of solving problems.

Until next time, till next revelation.

--

--

Raj Geriya
scaps
Editor for

Thinker, explorer, computer geek,foodie and music lover. silently curious. i ask a lot of questions.