François Lévesque
Technical Director at Witify
Great ideas deserve great execution. At Witify, I had the chance to get involved in a wide range of software projects, from the simplest to the most challenging. Each project was a new adventure, with its share of challenges and learning experiences. And if there's one thing I've learned, it's that no matter how big or complex the project, good planning makes all the difference!
In the beginning, I was a bit like everyone else, thinking: 'Why waste time planning when you can jump straight in and start creating something concrete for the customer? But, over time, I came to understand that this step, which might seem superfluous, is in fact the key to a project's success.
Working with a team that has mastered the art of defining requirements makes all the difference. Not only does it help to clarify and refine the initial idea, but it also helps to identify the best means of implementing it effectively.
When you first start out with a new idea, the list of unknowns is so long that it's hard to estimate the scope of the work involved. Identifying potential risks is difficult. Planning the ideal sequence of steps to achieve objectives is risky.
Defining what's required allows us to refine an idea, while finding the best ways to execute it as efficiently as possible.
For example, a customer came to us asking for a mobile app, but when we started digging deeper and doing more research, we discovered that creating a PWA website was a better option.
It's a mutually beneficial exercise for both client and agency.
From the development agency's point of view, it guarantees the selection of the ideal platform and ensures that every feature developed is aligned with the customer's priorities.
From the customer's point of view, he gets a complete overview of his project idea. Thanks to external expertise, he can also refine his technological requirements. This is a crucial step in drawing up a realistic timetable for achieving objectives within budget.
The requirements definition process begins with a Discovery phase. This is a sequence of consultation meetings and brainstorming sessions during which ideas can be explored in detail with the customer. It's also a crucial period for keeping the focus on priority business objectives.
During the discovery phase, it's crucial to speak the same language. An agency is an expert in its field of software development, but the customer is an expert in his or her specific business area. We need to establish a common vocabulary. The customer needs to understand some of the software jargon, and the agency needs to understand the customer's jargon. This alignment is crucial to avoid distortions in the requirements.
Once a common vocabulary has been defined and a list of requirements has been drawn up, it's time to write the "User Stories". These are short sentences succinctly describing what a software user should be able to do. They must contain the subject (who does the action?), the context (when?) and the action (what?). Here are a few examples:
User stories focus mainly on the objectives and tasks to be performed in the software. They don't explain how they will be carried out. This is the role of wireframes and mock-ups.
Once the User Stories have been drafted, visual exploration is essential. The customer needs to see what his idea might look like, in order to refine it further with the agency. Depending on the complexity of the project, the agency will produce iterations of Wireframes, Mockups and/or Interactive Prototypes.
We generally start with Wireframes, which are low-resolution mock-ups that are quicker to draw and modify, so we can iterate more quickly, without having to worry about design and branding.
When pages, actions and behaviors are refined with wireframes. It may also be appropriate to design higher-resolution mock-ups. This is particularly useful for projects where user experience (UX) is a priority, such as consumer platforms.
If the mock-ups have been designed with a tool like Figma, it is then possible to add interactions. This makes it possible to test other logical flows not visible on a static mock-up. Examples include page change, popup opening, tooltip appearance, and so on.
Together, these documents enable us to refine an idea to a highly superior level. Very often, a simple wireframe highlights critical elements that had not been considered during the User Stories phase.
The definition of requirements is therefore not linear, but circular and iterative. The wireframes feed the common vocabulary and the User Stories, and vice versa.
Without rigorous requirement planning, developers have to guess what the customer wants. The risk is enormous: a team of developers can spend weeks programming a complete software architecture, only to realize that the requirement had been misunderstood during an initial presentation of the work with the customer.
Requirement planning simplifies and accelerates all phases of development. Developers have all the information they need to start a project in the right way, with a suitable and sufficiently flexible architecture from the outset.
After development, a test phase ensures that the entire system functions correctly and meets project requirements. Once again, careful drafting of requirements speeds up this phase.
Once testing is complete, the software can be put into operation.
But that doesn't mean you have to stop here, as the agency can also provide ongoing support and maintenance. This is where the role of strategic partner comes into its own, supporting the company and the project over the long term.
Once your project has been deployed, an agency can support you throughout the software's lifecycle and evolution. This continuous development stage covers product management, development and the refinement of certain modules.
An agency can help you design a long-term roadmap and understand new technological challenges. Every project is unique, so this phase must be tailored to the customer's needs, and can take many forms.
Planning the requirements of a software project can be a real challenge, but you're not alone! At Witify, we're here to make this step a smooth and successful one. Do you have questions or ideas to share? Contact us and let's launch your project to success together.
François Lévesque
Technical Director at Witify
François Lévesque is co-founder and Technical Director of Witify. Specializing in the management and development of complex software and web projects, he has spent the last 8 years developing customized ERP, Intranets and CRM systems. Throughout his career, he has developed in-depth expertise in software engineering, with a particular sensitivity to translating business objectives into precise technical requirements. With extensive expertise in data analysis and visualization, François has also successfully led numerous data projects with government institutions.