The Elements of a Great Software Process
By: Morgan J. Lopes
Tags: Design, Scrum, Development, UX, Software Development

Whether an internal team, freelancer, or agency there are a few key elements within the journey of building great software. You’ll hear words thrown around like agile, waterfall, or a myriad of other systems. Regards of how you think about the work or the framework one ascribes, the same basic elements exist. Steps may get skipped or ignored, but I’ve yet to experience a software project that doesn’t contain the following elements.

Strategy

Information Architecture

User Experience

User Interface Design

Development

Deployment

Adoption

Strategy

It’s important to understand the vision for the project. Rather than imagining a list of features and objectives, it’s important to focus on the customer. What is their problem, their need, and the job they are trying to accomplish. This is where you should define priorities as well. Every decision has costs, but understanding your non-negotiables will ensure you optimize for the right outcomes.

Rushing the strategic conversations will result in lack of direction and guidance throughout the process. If you know why you’re building and who you’re serving, it will keep the project on track and moving forward.

The deliverables here should include high level features, clearly defined priorities, and a outlined importance of the road ahead. The difference between a prototype, an minimum viable product, and a version 1 could mean the difference of months or even years. The path forward for each should be very different.

Imagine we’re building a house. This is where we cut out photos from house magazines, sketch out floor plans, saving money, and making sure the right people are available and onboard. There is infinite variables among 3 bedroom homes, but understanding your ultimate plans for the home will help you make hard decisions. A home built to rent-out is constructed with different intensions than one built to live in for the next 50 years.

Information Architecture

If this were a simple website, this would be a sitemap. In custom software, the need for organization and thoroughness is much higher. We unpack all the key user decisions and make sure it’s aligned correctly.

This step is often buried within the User Experience and Wireframing portion but it can (and likely should) stand alone. The architecture decisions about how information flows and how it is organized within the system is about more than images or button placement.

The deliverables here should look something like a traditional sitemap. You’ll likely uncover informational patterns and understand the ‘depth’ required in the user journey. Features nested too deep within a system rarely get used.

If we’re sticking with the house analogy, this would be where we organize all the photos, facts, and figures we collected and start to curate and clean up. You may conduct research from others who have built similar homes and continually rearrange to optimize space or flow.

User Experience

User Experience yields wireframes. We start with low fidelity versions at first then move on to move refined, high fidelity images. Depending on the needs of the project, a clickable prototype may be appropriate and will allow simple interactions with the system.

Producing over-designed wireframes can often prove distracting. It’s not uncommon for the conversation to shift into colors and aesthetic before key decisions have been make about the structure. Personally, I prefer low fidelity and under-designed. If nothing else, it helps keep your brain in check.