What Defines Quality in Custom Software Development?

What Defines Quality in Custom Software Development?

How do you really define “quality” when talking about software? Is it the look and feel? Is it the speed and efficiency it provides over its previous versions? At TTT Studios, we know that developing high-quality software is more than simply writing a few new lines of code or putting eye candy data visuals on a dashboard. Sure, those pieces play a role, but we know there are more important elements involved as well. So, we sat down with our TTT design, development, and executive team to really get to the bottom of the question: what does quality mean to you?

A designer’s perspective on quality

With software living longer than ever and impacting our lives directly every day, “quality” for our design team means anticipating and exceeding user expectations. 

This starts by gaining an in-depth understanding of user behavior through research such as surveys and interviews and consulting with our clients to get to the heart of the challenges they are facing. We then translate these insights into the product by creating user personas and user journeys to generate a key list of features that will solve the jobs-to-be-done. 

We asked Josephine Wong, our VP of Design, about why TTT Studios takes this sort of approach. She responded, “From a designer’s perspective, quality and understanding the users are intertwined.” 

She continued, “Good designers need to be thinking three steps ahead about how a user would interact with the software and what the user's requirements are. We use a user-centric approach, which incorporates elements like Jakob Nielsen’s 10 UI heuristics and the UX pyramid.”

Although these sound like technical concepts, at their heart they are all about keeping the user at the center of the user experience.

Once the design team has a better understanding of the user’s pain points and can anticipate their expectations, the next step is to put pen-to-paper. We always start with sketching in pen and paper to ensure that our designers have a tangible sense of ownership of the ideas that they are creating. 

Next, we work on low fidelity wireframes from the sketches and review the UX through a process called ‘wireframing' where we screen wireframes together to identify a happy path through the software. Then our designers hold their breath as we undertake user-testing with a list of real-life users to ensure that the design matches its objectives. 

With a user and client-approved UX, the next step is the UI. We enhance our user experience by implementing delightful colors, typography, and interactions. This becomes the roadmap for the engineering team to follow and while it's the most obvious to the user, again, it is all the backend UI/UX work that really drives the quality home. 

An engineer’s perspective on quality

Being responsible for the functionality, health, and maintainability of software puts software engineers at the very forefront of the quality debate. 

We asked our Developer Productivity Lead, Becky Wu, for her thoughts on the quality and like our design team, she agrees that quality revolves around user expectations. And beyond the user, she defines quality to include the internal processes that made the software in the first place. 

“Quality is more than just simple functional requirements, see the button, press button, it’s a sum of all the underlying efforts that allow us to make the incredible seem routine.”
“Coding is not a one person job, collaboration is key. As multiple developers work on a product, a protocol is defined with our engineering team to ensure cohesive and seamless integration of the frontend and backend. Post which, software testing and quality assurance come into play.”

As an example of this behind-the-scenes process, Becky explains that from the beginning of our DevOps cycle, we adopt a CI-CD Pipeline (continuous integration and continuous deployment) so that we are prepared in the future with a greater capacity to handle errors. Testing our code earlier in the development stage through this process allows us to deliver software that has gone through more oversight (and sets of eyes) than if it was built manually.  

Becky also shared the importance of documentation in defining quality.

“Documentation sounds mundane, but it makes a world of difference for maintaining or scaling quality software. Even seemingly small efforts like standard notations in a codebase can spell the difference between an app that looks great but fails often and an app that looks great and performs beyond expectation.” 

An executive’s perspective on quality

Chris Hobbs, President of TTT Studios, could not agree more with our designers and engineers when we asked him to define quality in software.

“To be honest, I don’t know how much more I can add [laughs]. I think they hit the nail right on the head!” 

When pressed, he suggested that quality is also an output of continuous improvement and that delivering high-quality solutions is rooted deeply within the culture at TTT Studios. 

“As an example, our team has spent a good amount of time on setting up reusable components of code on monotonous things like login and registration. Even here you can see the detail and the care that our team takes because we all agree from top to bottom that even the repetitive parts are critical. And more importantly, once we have nailed down the common features to the point that it's basically rinse and repeat, we can focus on the more interesting challenges that the software project is presenting.”  

Lastly, our project management team works closely with our design and software development team to drive the project with clear milestones, relay client feedback, to make sure we deliver the project within the client's budget and time.  

We believe technology is a great tool to solve a business problem. TTT Studios will own your problem, challenge stakeholder assumptions, and work together to create a solution. Reach out to our team to bring your idea to life. We'd love to help you.

Featured image credit: @ThisisEngineering RAEng