There are many myths about the design process during developing UI-centric software. This post will outline some common mistakes and how to avoid them during the design and development of your website or custom application!
Agile Design Process. The Problematic Development of UI-Centric Software
While some argue there is no room for improvement if you implement a detailed with precise requirements, others prefer to wait several months before launching digital products so that they can be sure everything is perfect. Now, let's delve into the intricacies of how to prevent missteps while crafting your website or custom application!
Never-Ending Story and Traditional Approach
The date is one of the first pieces of data for each new project. The date is chosen for a solid business reason: the trade show, conference, seasonal event, or funding factor. It's crucial.
What else is essential for the project where the user experience is critical? E-commerce shop, for example. That's correct! The product design has commercial value. Bad product design will harm conversions and retention rates; thus, it has a business worth.
Businesses put all their effort into getting the best high-fidelity designs they can, and only when the design is ready and perfect do they go to a development team and ask them to build out their designed system. This is known as the Big Design Upfront method or BDUF. However, because most of the time and money was invested in designing from the very beginning, the deadline is approaching swiftly.
Even if developers are brave enough to state that achieving a deadline is out of the question, someone will volunteer to "give it a go." But, of course, trying will not assist, and the entire project will fail.
I've seen the same scenario repeatedly throughout my career.
Design-First Approach Is Considered Harmful
The practice of obtaining detailed and specified product requirements endures on and on. However, it is ineffective. According to the CHAOS study, just 11% of Waterfall projects are successful. Projects with an agile approach that do not have well-defined requirements are considerably more likely to succeed.
The most significant issue is that a UI/UX design does not include all the requirements. It provides all the constraints upfront requirements do but does not give any information about how the system should function. Therefore, there must be an additional analysis stage if we wish to pursue Waterfall. Unfortunately, it's too frequent to proceed with product design without addressing functional and non-functional needs.
Another problem is that UI/UX designers should not be aware of architectural constraints or implementation complexity. For example, adding just one button might take several minutes for the designer, resulting in a month's worth of effort to develop it.
There may be fast and straightforward solutions to issues from a development team standpoint, but once a product design is established, it might conflict with the best solution. In this example, developers will devise a less optimal solution or argue about product design decisions. Both situations result in more time and money being spent.
Time Is Not a Renewable Resource
It's not good to be in a position where your development bills are constantly going up, but money may still be made and time only spent. Late software becomes obsolete if a customer picks a date for legitimate reasons, like a trade show. Not perfect software or prototype with just a few essential features will have worth.
In most cases, time is critical to outpace competitors. Competitors will acquire as much market share as they want if they release digital products earlier. In this instance, it is not about whether the product is perfect; instead, the first released product wins.
Assume that a customer releases its product three months later than anticipated. If it was on time, it could produce $1k MRR in the first month, $2k in the second, and so forth. Despite that, it made just $1k at the end of the third month because of the delay. However, the cost of delay is more than $5,000; each month, the actual MRR will be lower by $3k. The accumulation of delay price may be high, and it will grow over time. When a problem arises, nobody can stop the process.
That's the focus of any business: to deliver something new to the market that is simple and functional rather than waiting for the ideal design.
You Can't Always Get What You Want
Another disadvantage to an upfront design process is that software development is always a tradeoff. If each firm could acquire everything they want, the product would have no worth when starting a product development process since everyone would get the same thing.
You can't always get what you want but if you try sometimes, well, you just might find what you need! - The Rolling Stones
Should developers assume that each component of the high-fidelity designs has the same importance and that all parts are necessary for business? What should they give up to fit the budget or timeline if yes? It might be non-functional criteria such as quality, maintainability, performance, or security. Are they less important than the UI/UX design? I don't think so, but we should consider them to find a balance instead of expanding the interface scope.
Functional requirements can also be affected by this. A UI/UX design does not dictate how the system should function. During further research, the product team may suggest less complex behaviors or eliminate the needs of specific users, such as admins.
We may only achieve the correct balance if we concentrate on what is essential in each field: how it works and looks.
We Don't Know What Users Want
A primary worry: "Our product is one-of-a-kind, and we must prepare all necessary information ahead of time." This worry isn't linked to the complexity of the industry or the product.
Everyone wants to control the entire process from start to finish, ultimately. We think more study, research, and precise instructions will produce a superior product. Unfortunately, this method provides only an Illusion of control. We create systems for people, and we can't possibly anticipate their behavior. Because users will act differently than expected, many preconceptions will be wrong.
Is there a difference between products that must be weighed carefully before development and others that should be developed iteratively? The United States National Defense Authorization Act for 2010, section 804, titled "Implementing New Acquisition Process for Information Technology Systems," states:
early and continual involvement of the user
multiple, rapidly executed increments or releases of capability
early, successive prototyping to support the evolutionary approach
a modular, open-system approach
Military software is created based on fast users' quick feedback rather than fixed upfront demands. So is e-commerce software, for example, riskier than any military program? Certainly not.
We Cannot Predict the Future
Finally, even correct and fully finished requirements are only valid when produced. Within a few months or sooner, the environment, business demands, competitors, user demands, organizations, code, tools, and so on will change. Nobody knows how.
If the general idea for adopting a new system changes, we must also modify the software requirements. Unfortunately, some developers refuse to make any modifications during the development phase, while others negotiate change requests. Both strategies throw a wrench in the value chain. For example, in the first scenario, customers do not obtain the tools they need and receive the software they do not require. Another example is a product that businesses require but needs twice as much effort to describe and redefine requirements.
The problem will be solved when you engage in an iterative process of defining business demands. It implies that the agile design process should not be completed during the first phase.
Agile Process Focuses on What User Can Do
So, what is the best first step of the agile design process? We shouldn't be concerned about how it should appear; instead, we should consider how it should function. We create software for people to use, so concentrate on what they may do with it. "User can add a product to the shopping basket" is referred to as a "user story." Make a list of user stories based on the types of users you're dealing with.
It's all about the value, not the specifics, with this method. It provides a good enough understanding of how software should work without telling you how to do it. Furthermore, you may pick what to do next and consider how to accomplish it only before the creation of the user story begins.
Incremental Approach to Agile Design
What about the UI/UX design process? The story may be improved by including further information in a basic wireframe. The final design should be implemented by the design team for each user story at the beginning of the iteration. Create your design gradually from small parts, following agile principles.
What about the big picture? If we progress one small portion at a time, how can we ensure that the entire application design appears as a single system? Creating a UI design library is a wonderful notion. The same typography, headers, buttons, selects and dropdowns, and grids may be found in various application sections. Components based on similar ideas can be readily transformed into reusable components. Once a new element appears in the wireframe, it's time to create the UI component. Then, you'll be able to utilize these elements without needing UI/UX designers as you accumulate more and more of them.
Validate Assumptions through Quick Feedback
When we create anything, whether it's a website or software, we assume it will be done in a specific manner. The objective is to validate these agile design preconceptions as soon as possible to make sound judgments and get the most out of the next sprint.
It's important to hear what your users have to say, as it's the only way to test preconceptions. However, you can obtain a lot of information in various ways: metrics, polls, interviews, etc. Google Analytics is one of the simplest methods for observing user feedback and determining what to do in the next sprint planning.
Embrace the Change through an Agile Approach
To summarize, the proper agile design methodology includes acceptance of the change. To embrace change during the agile design process, it's essential to be prepared for it. This means that requirements and design should not be finalized upfront, as they will likely change as the project progresses. Furthermore, user feedback should be welcomed and incorporated into the iterative approach to the design and development process to ensure that the end product is as desired by the users. Lastly, it's essential to have a flexible, agile design process and accept that changes will occur during the development to avoid any roadblocks.
Software Estimation: What You Need to Know
- December 23, 2021