Engineering

Starting Your Next Software Development Project? Read This First

Starting Your Next Software Development Project? Read This First

Nowadays, every company is part of the Information Technology industry. While Latin America had a later start, the region is quickly catching up to the rest of the world. Local companies are discovering the competitive advantage of leveraging new technology tools, and digital transformation is becoming a ubiquitous term. For some, the excitement is high when they realize the potential benefit for their companies. For others, the anxiety of apparently showing up late to a party they have not arrived at yet increases. To which of these groups do you belong?

Desperation can make us do things in a disorderly way — and while there is nothing wrong with trying to do something fast, omitting or mixing up steps can be dangerous. In the best scenario, this can cause rework. However, in the worst-case scenario, it can cause problems either in the implementation, the technical feasibility of the solution, or user acceptance.

As a company with a mature team of Digital Product Designers, Wizeline has witnessed both extremes: projects that improve companies forever and others that leave scars and false lessons learned. Keep reading to see some of the valuable lessons we’ve learned along the way to improve your software development process.

Research Your End Users

The success of a product or service depends on how its users perceive it. Even platforms that users are obliged to use, for example, for labor or legal purposes, see an impact in their efficiency as directly related to user perception. While it is comfortable to think that a user must use your system because they are your employee, for example, your aim should be to enhance their experience, especially if you’d like to lower your attrition, which can be costly.

Some companies face a risk of generating complete requirement lists based only on the competitive analysis and ideation with the company’s internal stakeholders, excluding the platform’s end users, internal or external. To create an effective platform, user research and testing are essential. According to Hoa Loranger, “UX without user research is not UX.” 

Be careful with an attitude of being “open to research” when in reality, you only consider additional functionalities to an existing list. Arriving at an investigation with a set idea of what we want to develop will diminish the importance of the results. If something is identified as highly important, we must rework our list to prioritize it above the less important things we have already defined. On the contrary, if we first consider the investigation results and then determine our requirements and their priority, we can save time and be more organized from the start of our plan.

A practical method for the early development phase is performing contextual interviews. Ideally, research moderators ask open and general questions. These are some examples of questions we have used in the past and recommend to gather the most relevant data: 

  • Can you show me step by step the tasks that you perform on a typical day? Why do you do them this way?
  • If you had a magic wand to change something, what would it be?

While asking these questions, you should avoid implying your preconceptions of what they need. An example of a question indicating your preconception is:

  • How would you feel if you could easily visualize this information?

Get Your Design Team Involved From the Start

The definition of the UX role is understood differently among companies and contexts. Let’s also consider the existence of Visual Design, Interface Design, Interaction Design, Service Design, and Product Design. These are design disciplines that may be common among the tech industry. Still, they also have a great variety of techniques, methodologies, and deliverables, making them somewhat confusing. One of the problems this situation generates is deciding who must be involved in various stages of the development process.

When UX is understood exclusively as creating visually attractive screens, it is understandable that this person or team should join the project once the most critical functionalities are defined. However, one of the main areas where a UX designer can be vital is user research. Also, UX Design, Service Design, and Product Design employ collaborative methodologies to help your core team share their knowledge early in the process.

In a notable study about the investment return of design, Jeneanne Rae’s team selected Fortune 500 companies that were centered on design according to six parameters. One of the parameters was the influence of the design practice inside the organization. Companies in this category’s performance were measured at 228% above the average, showing that the strategic value of UX design is not negligible.

Get Ready To Embrace Uncertainty

Due to the importance of initiatives involving significant development work, it is common for companies to create detailed plans that describe each of the tasks and specific timelines for all the deliverables. In a context where budgets are minutely planned, this is no surprise. However, big development projects have an inescapable uncertainty component, which comes from undefined obstacles and the business’s changing priorities. Therefore, the best work plans provide the necessary flexibility to react. Here are two fundamental elements to keep in mind:

  • Use agile development methodologies. This means evolving the product or service iteratively and changing the requirements and solutions according to the context. The most common agile methodology is Scrum due to its lightweight and specific alignment rituals.
  • Learn about the product along the way. The iterative cycles include usability tests and concept tests which help to define the requirements and solutions. An example of this methodology is Lean UX, which focuses on rapid deliveries and continuous learning about the market’s reaction to your product.

Get Stakeholder Buy-In on Priorities

Different areas of the company have varying goals and priorities. That is why, when investing a significant amount of time and effort in a new development project, it is crucial to have a healthy discussion about what is required of each department and ensure all necessities are prioritized.

This is not an easy task, as those healthy discussions can be challenging. Departments may struggle to accept that their needs are relegated, or worse, that one of their processes is affected, without a good reason to allow it. This could lead to long, unorganized, complex, and circular meetings. The alternative that many people take is to accept all the stakeholder requirements and create a document with dozens of pages of specifications. However, just the creation of this document implies a significant effort. 

Fortunately, some methodologies help to overcome this obstacle. With the proper facilitation, it is possible to prioritize impartially. An example of the techniques used for this is the Lighting Decision Jam: its purpose is to, approximately in two hours, help you make an important decision about a complex problem. Decisions are made through votes and categorizations, reducing the need for lengthy conversations. For example, you could ask a question like, “Which of the ideas implies a more significant impact and less effort?” This makes decision-making clear and visual for everybody.

Conduct an Architecture Design Study

Software architecture studies the fundamental structures of the systems — the elements of the software and their relationships. We call them fundamental structures because changing them later in the development process can be very costly. Some examples of these requirements are:

  • Scalability
  • Security
  • Traceability
  • High availability

It is crucial to conduct this study considering the objectives of the project and aspects that can change over time, like the legal, social, and technological details, as far as we have visibility. Ignoring them increases the risk of having an architecture that can’t achieve the project’s objectives.

Conclusion

There are many aspects to consider when starting a new software development project. We consider these factors described above as essential because they are fundamental factors, and each could result in crucial implications. If you’re unsure how to implement these learnings in your next software development project, consider collaborating with Wizeline.

Wizeline partners with Fortune 500 companies and fast-growing startups to bring high-quality software development projects to life. If you would like to learn more about how we can work with you to deliver your next project, shoot us an email at consulting@wizeline.com

By Rodrigo Partida Zermeño, Wizeline Senior UX Designer
By Rodrigo Partida Zermeño, Wizeline Senior UX Designer

Aisha Owolabi

Posted by Aisha Owolabi on November 23, 2021