The development of software solutions is a complex process that requires the consideration of different professional approaches. If we talk about solutions that need design, then it’s important to take into account not only clear schemes and algorithms, but also design thinking. We asked experts how design thinking affects the development of software solutions.
Juuso Hämäläinen, Founder & CEO at Tangible Growth
Are you a company of machines or a company of people? Are you selling to machines or people? The software that solved the problems of yesterday only partially solves the problems of today, and less in the future. With the speed of change today you need to see problems and solutions as an ongoing conversation.
Design thinking has little to do with actual design in the way many of us would think of it as pretty objects or visual decorations – it’s more a way to focus on your users’ needs and outcomes. The core of design thinking is to put people in the center – and this is valuable to everyone regardless of role or organizational hierarchy. If you’re not focused on customer outcomes, then what are you focused around?
Software is just a solution to a problem. The better you understand your users, the more likely it is you are solving the right problem. Great product organizations apply design thinking across the board, set objectives that are focused around customer outcomes, or learning about the customer more, and enhance working together to solve those problems. The more mature the organization is, the more teams feel empowered and often have the end-to-end possibility of delivering customer or user value.
Take the example of Airbnb, they strongly believe you need to strike a good balance between what business and product are, what design is, and what engineering is – all you need to understand is the possible user problems and solutions, and how those might develop over time, to plan rightly the experience and the architecture to be optimized.
Chris Love, Love2Dev
The core concepts of design thinking are required for good software. Developers tend to just look at requirements and not what the real problem is and options to solve the issue.
Stakeholders tend to have tunnel vision about both problem and solution.
You need to have some sort of fresh attitude to consider what you are trying to do. Just because you have seen another application do something does not mean it is correct or should be applied to your use case.
Should design thinking and ideas need to be controlled and contained? To a certain degree. I love to brainstorm both visual interface as well as business logic. My dry erase boards and paper tablets are used throughout my day to sketch ideas. I can see what the experience will be like before investing time in code.
I am also free of coding restraints and the time it takes to write the code for prototypes.
But too much range means you can go off on too many tangents. Often just placing a time constraint, like the pomodoro technique, limits how broad I will go.
What is the dependence on design thinking for the success of a software product? Without simple prototypes and some out of the box thinking you may not solve your problem. It is easy enough to experiment with a variety of solutions to see what works best. Can bad design spoil a great software product? Absolutely.
My rule is to keep the user interface as simple as possible. Follow the “don’t make me think” rules. At least once or twice a year a client over designs, user interface and experience expectations. These ‘pixel perfect’ visions tend to be exponentially complex and add little enhancement and often make it more difficult to use.
Karen Gordon, Goodshuffle Pro
Dress for Success: a rule that applies to software, too. Think about the last time you held an interview. Even if it were during Covid over Zoom, I bet you had some expectations of what the candidate was wearing. If they had a ratty t-shirt and didn’t comb their hair, you probably would have some questions about their professionalism. What we wear, particularly in business, says a lot about how we conduct ourselves. Of course, we need to be able to back that up. If we always look stunning with Italian business suits, but consistently miss the mark – sorry, not sorry – our appearance won’t save us. The same goes for software. When developing software, you need to know who your target audience is and design for them. You could create the most state of the art software, but if it doesn’t initially appear that way, no one will trust it.
We need user-friendly and digitally intuitive design to attract clients. However, we need exceptional engineering to back up what our design says about the software. When my team was building our event software, we designed it with event professionals specifically in mind. We thought through obstacles we knew event professionals frequently confronted: double bookings, deposits and payment increments, frequent communication and changes, inventory rentals and returns. We had our initial goal of building software that streamlined all of these pieces, and we knew that it would help ease the headaches of event professionals. But if we hadn’t thought through the design to make the use effortless, we could have given them one more reason to have a headache.
Pieter VanIperen, PWV Consultants
Software development relies heavily on design thinking. At the end of the day, the software can’t just be functional, but it has to be user-friendly too. Otherwise, who is going to use it? Design thinking and ideas need only be contained to fit inside the end goal. Creativity and outside-the-box thinking can end up resulting in an even better product than what was initially imagined. Trying to contain ideas and thoughts can lead to missed opportunities.
A bad design can absolutely spoil a great software product. Again, if it functions but no one can figure out how to use it, why would anyone buy it? Inversely, if it’s an excellent design for human interaction but doesn’t function under the hood, then likewise we have spoiled the product with design. There has to be a balance of functionality, usability and, above all, security. Great software is built when everyone involved pushes outside of the zone of what is comfortably possible but no single idea runs away from the group.
Soheil Salarimanesh, Founder and CTO of ButikRea
An implemented application can be achieved with or without a proper design. A bad design in the worst case can have only some performance issues in the end and it can be significant or it cannot be important at all. Therefore, the design and architecture of software are not going to impact the result and solution in the end. However, when it comes to a bad design, the main impact can affect very important factors in the lifetime of software which can spoil the software in the long term. The main three of those factors are maintainability, extendability, and testability.
1) Maintainability: each software lifetime includes several versions of the software. That versioning can happen because of the major or minor bugs, or changes can happen because of the new requirements that have been raised from the client(s) after releasing each version.
Hence, for sure, there is no successful application without several versions, how the application has been designed will help the development team to be flexible about the incoming changes. With bad design, changes can be so costly. The new changes can create more bugs which can affect the business or increase the development time significantly. In the worst case, some changes could not be possible and could lead the software to be re-implemented totally or partially.
2) Extendability: same to maintainability, with bad design the application cannot be extended for new features and requirements, or it can be costly. If software continues to be developing without taking care of a proper design, it will increase the maintainability and extendability time exponentially. Development time is a major factor when it comes to successful software since developing software is expensive and it can spoil the software from the business side.
3) Testability: a proper design can bring testability availability. With testing, an application can be changed and maintained with more confidence and with fewer chances for creating bugs. Software without a proper design is almost not testable or is highly time-consuming, which cannot add the expected value from the business perspective.
Leobit develops advanced technologies and solutions for customers in Europe and the USA. We create solutions for the automation of processes in various areas of business. If you are interested in how to make your business better, write to us.
Martin Cacace, President & Developer at BoundState Software
Successful software projects are greatly dependent on design thinking. Using design thinking in large software development projects helps mitigate risks and deliver projects on time and on budget. Without design thinking, large software projects will take months to figure out which direction they should take, only to realize half way through that it’s not working how intended. They are notorious for failing, not launching at all, or launching over budget.
Design thinking provides a structured approach to validate potential solutions and deliver software projects successfully, on time, and on budget. Instead of making changes at the end of a project when you see the limitations, use design thinking to test small aspects of the project as you go.
Marcos Brisson, Kaizntree
I’ve found that design thinking is at the core of software development. There is not one without the other. Nevertheless, software is developed according to how it is designed to function. Without design thinking, software development would not have a direction. Development itself is not useful itself it is towards the desired direction. This is what design thinking does. It directs software to be developed in ways that produce a great product.