Imagine software that changes and grows according to the user’s needs. Can the SaaS industry adapt to this new way of manufacturing products?
Imagine you are sitting at your workstation, coffee in hand; you open an Excel spreadsheet and start working out some numbers for a report that should be ready by the end of the day. You remember a new algorithm you recently read about that is perfect for the type of analysis you have in mind. However, there is a problem: Excel does not have a function for this algorithm.
You could code by hand, sure, or you could leverage SaaS services, open your Bing wizard, and ask if it could edit your Excel source code to add new functionality. After a few seconds of searching the web and a few minutes of writing new code and compiling everything, you have your new Excel with a new function just for you. Welcome to the era of malleable software.
If this example sounds like something out of a science fiction novel, that's because it is. The number of challenges involved in making something like this work is huge, but not insurmountable. And while we're still decades away from seeing anything this sophisticated, I bet we'll start to see some really interesting AI implementations around software personalization in the near term.
The idea of custom software is nothing new, whether it's changing the aesthetics, or tweaking/modifying the software to meet our needs, or creating an interface that prioritizes accessibility. But that's like changing the color and seats of your car. In the end, you're just adapting for comfort, but the underlying chassis and engine remain unchanged.
The Traditional Software Paradigm
Almost all modern software is based on a single assumption: “designers know best.” This, in and of itself, is not a bad thing. After all, we spend trillions of dollars on research to understand the best way to develop software for our users. There are hundreds, if not thousands, of books and workshops on UI, UX, GUI and other user experience related topics.
Let's talk a little about the most popular frameworks for front-end development. Angular and React, both backed by major corporations (Google and Meta), are built from the ground up to provide developers with incredible flexibility, and with enough creativity, can allow you to create a powerful, custom web application.
Except, like every other framework on the face of the earth, Angular and React are both stubborn and the more you deviate from the framework standard, the more headaches you are bringing into your life. This is especially relevant in Angular development. Most developers will take the path of least resistance, shaping their vision of how the framework expects you to build the application. Again, not a bad thing in and of itself considering how much thought and planning went into building these structures.
Now add another time-tested solution to your tech stack, something like Bootstrap or Bulma, and you'll have a beautiful, useful web page that looks like any other web app on the market. On the one hand, this is cool because users already know what to expect. Once you see one navBar, you will see them all. On the other hand, I hope you have a good idea to enhance your product, because your aesthetics don't catch anyone's attention.
I don’t want to seem like a developer with moral superiority – quite the opposite, in fact. I will be the first to admit that I am part of the problem. It’s easy to fall into the “developer knows best” mentality. Here are some of the reasons:
- Sunk Cost Fallacy : Most of us have spent decades and thousands of dollars studying and learning how to code, build applications, and create user experiences. At this point, we unconsciously defend our position of power, telling ourselves that we know what is best.
- One-size-fits-all approach: As the saying goes, you can't please everyone, so what do you do when trying to reach the widest possible audience? You follow the norm, the most common type of service that will appeal to the greatest number of people. Unfortunately, this also means not considering outliers.
- Trend Chasing: When we see someone's success, it's the most common thing in the world to want a piece of that pie. Just look at Hollywood and how Marvel has forced everyone to try and push their own cinematic universe. Trends are signs of where culture is moving, and to be honest, developers and investors are just as susceptible to FOMO (fear of missing out) as the average user.
It's very easy, actually. We have access to the data, we read and listen to key industry insights, and we see how successful products do it. It's obvious that we are the ones who really know how to do it. What about when IT is flooded with tickets because people don't understand our systems? It's just users being users.
And this is perhaps the biggest culprit behind this “I know best” mentality – the toxic ideas that we, developers, have towards users. Yes, we have a better picture of software; yes, we understand the limitations; Yes, we have to set expectations to avoid requirements that are one step away from “turning lead into gold, please.” But perspective is everything, and sometimes we are so inside ourselves that we can't see how an outside view can change our paradigms for the better.
The alternative: malleable software
Malleable software is a concept coined by Philip Tchernavskij in his 2019 Ph.D. thesis . This approach aims to increase the power of existing adaptation behaviors, allowing users to separate and recombine their interface. Malleable software involves interfaces that allow users to rearrange, add, or remove elements at the granularity of individual UI elements.
Furthermore, malleable software could, in theory, serve as a base philosophy for building applications that scale and change according to the user's desires.
As any developer or anyone who has hired a software developer for a large project can tell you, software tends to get bloated over time. Take a look at Twitter. What once started as a simple app for sharing your ideas in 120 characters or less has become a complicated hydra: video sharing, Instagram-like Stories, spaces, blue checkmarks, and gold checkmarks. Some of these functions remain today, while others have come and gone, like Google's latest product.
Although swelling is not the same thing as growth, these two concepts are deeply correlated. Excel wasn't the monster it is today at first, but as we added more and more functionality, the software grew in complexity and we ended up with the mammoth we have today.
Now, it's not about not knowing when to stop. To stay competitive in today's market, companies are trying to provide one solution that rules them all (sorry for the Lord of the Rings pun), which is extraordinary for those already part of the community, but pure hell for newcomers.
Let's be honest. The first time you opened an Excel spreadsheet, you probably felt overwhelmed by the amount of options, and only after hours and hours of suffering and searching for tutorials did you discover how to do something that would have taken you a few minutes if you just knew where. to search for.
As a former psychologist and data scientist, I was a big user of IBM's SPSS, a fantastic statistics software that has every analytical tool you can imagine. So why did I switch to Python and R? First, because I like my open source solutions and, second, because I wanted to have more freedom to link my data analysis to other functionalities.
But third, and most importantly, because I didn't want to navigate four menus to get the averages for some of my variables. With Python, I only need a few lines of code that I can reuse as I wish. Sometimes I just need a quick descriptive analysis without the hassle of having to open a heavy application.
This is a use case for malleable software: being able to change and adapt the interface to meet my needs as a data analyst. But there is more. In recent years, there has been a growing trend to explore how users could write their own applications, adding functionality and scaling them as they see fit. This is also part of the malleable philosophy.
I know biologists, sociologists, psychologists, and mathematicians, and we all have one thing in common: we all need software to do our jobs. But the type of tests I perform are different from what a biologist or sociologist needs. So, what if instead of having software with all the tools, we had basic software that we could add functionality to as needed?
As Kay wrote in 1984 “Now we want to edit our tools since we edited our documents previously.” It's simple. Instead of having “new Facebook” or “old Facebook”, we could build “my Facebook experience” and with the connectivity we have today, users could share their models, in the same way, the homebrewing community grows as people share their recipes.
Of course, there is the giant elephant in the room: how do we do this? This is where the violation of digital literacy arises. Customization means that at some point we will have to give instructions to a computer – coordinates, conditionals – so how do we achieve this philosopher's stone of software design? Ironically, the answer may be where we least expect it.
Are video games malleable software?
I admit, I'm a gamer and I would take any opportunity to talk about games, but in this case it's a fantastic example. For decades, video games have provided tools for users to tinker and play, giving rise to the so-called modding community. While this has changed somewhat in recent decades, customization is still ingrained in gaming's DNA.
Let me tell you the story of one of the biggest franchises in video game history, League of Legends, a free MOBA where teams of 5 players compete against each other, trying to destroy the opposing base. Today League of Legends is a multimedia franchise worth millions.
From humble beginnings, the idea behind the game, which is League of Legends, began as a custom map for the game Warcraft 3. The community took the game's modding tools and created a new and unique experience, very different from the original game . and which created an entirely new genre.
Part of the popularity of World of Warcraft (the king of MMORPGs with a lifespan of over 15 years) is how customizable it is. With some Lua skills, you can build and change the interface however you want. Some of the community-created add-ons were so disruptive that Blizzard (the company behind the game) was forced to change their APIs and ban some of the tools.
And even without modification, most games have options to change the GUI layout, how the game is controlled, and how it looks. Do you want to have a 120 FPS experience? Or do you prefer to play at 30 FPS with realistic graphics? It's up to you, the player, to choose which graphical options you want to enable and disable for the optimal experience.
So here are two lessons to learn: First, we can create options and sliders, as well as flexible graphical interfaces that our users can use within certain constraints. Additionally, we can create easy-to-use APIs for the community to play with and build better malleable software.
And then there's the third option: AI. As AI improves, a user may not even need to know how to code to create their perfect interface or add functionality to their software. Just pass the instructions to a ChatGPT-like interface and let the AI work its magic.
What does this all mean for SaaS?
The concept of malleable software, as conceived by Philip Tchernavskij, can have far-reaching implications for software development, including how we approach Software as a Service (SaaS) and SaaS outsourcing. Basically, malleable software aims to enable users to modify and adapt their interfaces, changing, adding or removing elements as needed. By extrapolating this philosophy, we can imagine a future where applications are designed to evolve and scale according to users' desires and requirements. But how could this potentially disrupt the current SaaS model?
Personalized user experience
One of the key ways malleable software can disrupt SaaS is by fundamentally reshaping the user experience. Today, many SaaS applications are essentially one-size-fits-all solutions. They have a set of features and functions, and users must adapt their workflows and processes to the software's constraints. However, with malleable software, the power dynamics change. Users can modify and shape the software to meet their unique needs and preferences. This could lead to a much more personalized user experience, resulting in greater user satisfaction and retention.
Scalability and Adaptability
SaaS companies often face challenges with SaaS scalability as they add more features and capabilities to their software to meet diverse customer needs. This often results in complex, bloated software that can be difficult to navigate and understand, especially for new users. Malleable software, however, could provide a solution to this problem by allowing users to add or remove features based on their specific requirements. This means the software can scale and adapt in sync with users' needs, reducing unnecessary complexity and bloat.
Collaboration and Community
Malleable software could also foster a stronger sense of community among users. As users customize and adapt their software, they may be inclined to share their “templates” or customizations with others. This could result in a collaborative ecosystem where users share, lend and build on each other's work. Such an ecosystem could drive innovation and user engagement, resulting in a richer and more dynamic SaaS environment.
Democratization of Development
Currently, developing new features or modifications to SaaS applications is primarily in the hands of the software vendor. However, malleable software could democratize this process, putting modification and customization tools directly in users' hands. This aligns with the growing trend of citizen development, where non-technical users can create or modify applications using low-code or no-code platforms.
Challenges and Considerations
While malleable software presents many exciting opportunities, it also presents some challenges and considerations. For example, there may be potential issues related to security, quality control, and user support. If users modify and customize the software themselves, it may be difficult for the vendor to ensure that the software remains secure and functions correctly. Additionally, providing user support can become more complex if each user works with a unique, customized version of the software.
Additionally, the gap in digital literacy can pose a challenge. While some users may enjoy the opportunity to modify and customize their software, others may find it daunting or overwhelming. Therefore, it will be crucial for SaaS providers to develop intuitive and easy-to-use tools and resources to support users in this process.
In conclusion, the concept of malleable software could bring about a significant change in the SaaS landscape. By putting more control in the hands of users, this could lead to a more personalized and flexible user experience, promote collaboration and community, and democratize the development process. However, these benefits must be balanced with potential challenges around security, quality control, user support and digital literacy.
Source: BairesDev