The Quest for Craftsmanship in Web & Software DevelopmentDigital & Creative
It’s a Code World We Live In
The modern adage that “code makes the world go ‘round” is not hyperbole. Our lives rely on the stability of thousands of software systems in a diverse set of industries such as banking, healthcare, and air traffic control. But because these systems mostly operate out of sight, they’re usually also out of mind, which makes them easy to take for granted.
For example, picture software that manages a seemingly simple collection of tasks, such as keeping track of your appointments on a mobile calendar and providing alerts. In reality, accomplishing these tasks smoothly can be enormously complex, involving thousands of use cases. Addressing each use case requires careful thought, planning, and execution. A single overlooked detail can derail an otherwise robust and useful application.
The Search for Quality Code
It is worthwhile to note that the computers, smartphones, and other sophisticated machines in our lives do not (yet) think for themselves. This means that every task a machine accomplishes—from gee-whiz to humdrum—is only possible because of code that was planned, designed, and written by a human being.
Artificial intelligence continues to advance, but for now software developers remain the creators behind every technology experience. It is here that we meet one of the great paradoxes of our modern, tech-centric age: the software charged with taking over tasks too complex for human brains must ultimately be created by a human brain.
For example, we are dependent on software to keep track of all commercial aircraft in flight over the United States at any given moment, yet that software was designed and created by people. It is a mental Mobius loop that would make Christopher Nolan proud. This paradox shines a bright light on the fact that the human element is the single most important variable in web, design, and software creation. The previous experiences, methodologies, and sheer skill of the designers and developers tasked with creating or maintaining a site or application have a strong influence on whether that site or application succeeds or fails.
If you are the buyer of development services, it is essential that you dig deep and ask the right questions about the capability and character of the team you are contemplating hiring.
A Partnership That’s Built to Last
The harsh sink-or-swim nature of development is the biggest reason you should seek out a partner who adheres to the tenets of craftsmanship and is in line with your company’s values in order to deliver superior applications. It may seem unusual to apply a word like “craftsmanship” in a development context, but considering the complexity and expense of most software projects, wouldn’t you rather have “a person who practices or is highly skilled in a craft; an artisan or artist” (to use a common definition of the word “craftsman”) working on something that is mission-critical to your company?
In the development context, a craftsman prides him or herself on getting the details exactly right for every bit of functionality. They take the time to construct their code in a clear and concise manner that promotes efficiency and reusability. They stay up to date on best practices and emerging technologies that can help them build better systems that are durable and can withstand heavy use. In addition, a craftsman never settles for sloppy hacks or lazy workarounds when they encounter a frustrating new challenge. In short, they care about you, about your product, and about delivering a site or application built with integrity.
Spot the Positive Traits
Many of these traits exist below the surface and are hard to discern during initial vetting and meet-and-greets. Fortunately, other telltale artifacts of top-level craftsmanship are easy to spot.
A great team will use the following processes and tools to ensure that the product you are seeking matches what is delivered:
- A dedicated technical project manager who understands every facet of your project, communicates natively with the development team, serves as your primary day-to-day contact, and delivers regular progress updates
- An in-depth project exploration meeting to discuss and record all functional and aesthetic requirements
- A clear functional requirements document that “reads back” to you everything you expect the site or application to do once deployed
- A well-defined development plan with an accompanying timeline for each phase
- Wireframes (or a similar visual representation of your interface) that demonstrate all workflows and their components’ key interactions
- Frequent collaborative reviews of work accomplished to ensure everything is on the right track
- Top-notch UI/UX designers that collaborate with the developers to ensure the site is functional in both aesthetics and usability
- A dedicated code repository with multiple daily offsite backups to protect your investment
- A dedicated quality assurance (QA) engineer who focuses solely on testing each day’s code commits, performing regression testing (making sure new code doesn’t conflict with previously delivered code), and ensuring that the required functionality matches what is delivered
Solidifying the underlying details is critical to creating a site or application that does the heavy lifting you need it to do. It helps to ensure that your project will come in on time and on budget, while dramatically reducing the likelihood of expensive and time-consuming redesigns down the road.
Do your due diligence and find a development partner who practices craftsmanship; ask them to provide you examples of how they approach their work. Those who love what they do, and take pride in how they do it, will be eager to share their craft with you and point you down the path towards a successful website or software development project.