Let’s roll back to the basics and discuss a few innovation tips that I think all software developers should understand.
My company produces software-enabled solutions that aim to solve problems while creating compelling experiences. We employ a variety of techniques during the development process to make this happen. Some of our tactics are intensive, such as ethnographic research and information architecture processes, but others are based on simple principles that can be used across nearly any industry that creates a product or provides a service.
At the most basic level, we employ five stages during the software design process: research, ideation, design, development and iteration. These five elements parallel the most basic questions of “who, what, when, where and how” that are needed to fully answer any set of questions.
Let’s break down these five elements of the software development process, which have been critical to the success of our projects. These elements are the foundation of how we create value for our clients, and they can do the same for your business, regardless of what type of development work is required.
The initial – and most important – stage for any development project is research. At our firm, research constitutes about 80% of all development processes; the other 20% is divided among the remaining four tactics.
Before any technical research is done, start by researching the human element. Seek to understand the client’s expectations and motivations in order to create the experience your software must deliver. Success should include a successful solution from the client’s perspective, so it is important to establish this foundation first.
Once client expectations are established, then evaluate the technology that’s required to fulfill these needs and determine the software-enabled solution that the business is attempting to create.
While doing research for one of our largest clients in the energy space, we spent a month in the research phase. We spoke with everyone from the CEO through R&D, and so were able to fully understand the client’s needs and expectations before heading into the actual software development stages.
Once the client’s needs and expectations are understood and research into all technical aspects is complete, the creative process begins. This is what is referred to as ideation.
During ideation, developers get their ideas churning. Some may be new or revolutionary, and others may simply be improvements on existing solutions. Regardless, the creative team should continue to analyze the ideas and combine them to create a solution that satisfies the customer’s needs and expectations. During this process, various needs may surface which the customer never knew existed — establishing these unmet needs also adds value, so time spent hashing out ideas is well spent. Although there may be many seemingly ridiculous ideas thrown out, there is usually a gem or two waiting to be discovered, or at the very least, some improvements on existing design.
While in the ideation stage for Our client in the energy space, we literally came up with 100+ ideas, and most of them were ones the client had never contemplated. When the processes were complete, 80% of the developed software was entirely new.
When all ideas have been selected, the front-end design process begins. Our main approach to design is using the information architecture process. First, we create low-fidelity prototypes. These are rough concepts early the process that we use to test the various structures and workflows of the solution.
Once the final low-fidelity mockup is determined, the visual, interaction and User Interface (UI) designers further tweak the idea for a high-fidelity prototype that will display how the solution will appear and perform. Once these behaviors are studied, the next step is to create an interactive User Experience (UX) prototype for testing.
Back to our energy client: We started with the low-fidelity prototypes, and then throughout the UI and UX testing phases our designers remained in contact with the client. This helped with smooth development, as we were able to quickly make any necessary changes.
With the design process complete, you can proceed to development by creating a back-end solution to support the front-end design. The development process involves studying the data and behaviors found during the design process, and producing a model of the database.
This includes selecting the most optimal server-side language. For us, we experiment with different languages, generally sticking with the simplest ones, which we think assists in a cleaner overall product.
Once the product is developed and launched with client approval, an iterative cycle of testing begins. This iteration process exists in all of the above stages, but it’s most imperative following the product launch.
While gathering post-launch analytics of performance, we’ll also revisit the business’ needs and ensure that the solution is meeting the client’s expectations. I highly recommend this process, as it can create lifelong clients. Once we have all knowledge in hand, we can continue to work with clients to further refine their products and create additional solutions that improve the overall user experience.
Regardless of what type of business you’re in, simplicity always reigns. That said, you can rely on these five stages for any development process: research, ideation, design, development and iteration. These steps will help you create not only a solution to a client’s problem but also a lasting relationship with that client. That’s a win/win for everyone.
This article is also published on Forbes.com.