Craftsmanship is something that we talk about a lot at LinkedIn. We view it as essential to creating lasting and impactful products for our members; therefore, it’s something we’re always striving to improve. In my experience, there are usually two main inflection points for craftsmanship in the life of a technology company.
The first is when the engineering organization initially makes the decision to embrace craftsmanship as an important value. The earlier this happens, the easier it is to weave craftsmanship into the core DNA of the company. It’s during these early stages, when the engineering team is still relatively small, that it can help hold each other accountable to this new standard.
The second inflection point is when a company reaches a certain size, and the engineering leadership must decide how to scale craftsmanship. I can remember when the engineering team at LinkedIn was still in the first phase, but as we’ve continued to grow, we’ve had to think about ways to maintain our high craftsmanship standards. Speaking from experience, it’s not an easy thing to figure out.
Maintaining craftsmanship within large organizations isn’t easy to measure. Therefore, it’s incredibly important that leadership buys into the concept (more on this later) and vocally promotes it. Leaders need to begin the conversation with the rest of the organization and allow space for teammates to weigh in and help define what it means for the growing teams. However, hanging signs and making speeches at engineering-all meetings isn’t enough. From my experience, three steps are necessary to scale craftsmanship:
- Define what “craftsmanship” means.
- Provide explicit guidelines and examples for what craftsmanship looks like.
- Support craftsmanship efforts on an ongoing basis.
Define craftsmanship for your organization
Within LinkedIn engineering, craftsmanship means that something is built or done with quality—each step is completed correctly, and no corners are cut. This is a definition that applies to most roles where something is being created, from furniture construction to software engineering. However, in the vast world of technology companies, “craftsmanship” can mean different things depending on the overall culture of the engineering organization and their goals. Therefore, the first step to instilling craftsmanship at scale is to define what it looks like.
Every software developer will be familiar with the metrics of speed and quality, which seem to always tug in opposite directions. We want our software to be of the highest quality possible, but it also must be delivered as quickly as possible to maintain high impact. Thus, in software engineering, craftsmanship is often about finding the right balance between perfect and fast.
When we first began considering an overhaul of our InMail system to reflect more of a chat-style experience, we weren’t sure if our members would prefer the change. A “pure craftsmanship” approach would have meant a complete rebuild of our messaging platform from the ground up. This would allow us to design the most optimal, complete chat-style feature. However, considering our mission is to connect the world’s professionals to make them more productive and successful, we decided to proceed quickly to offer this new feature but also slowly enough that we could adequately incorporate member feedback, and roll back versions if needed. For this reason, we chose to gradually migrate sections of our messaging codebase over to a chat-style feature. While this resulted in a hybrid system that looked a bit more like Picasso than da Vinci, it was also the choice that served our members best, which means for us, it was a well-crafted feature. “Perfect design” isn’t always synonymous with “craftsmanship,” as this example shows, so it’s important to define what craftsmanship is for your organization before attempting to scale it.
Provide explicit guidelines
Even once you’ve established a clear definition of craftsmanship beyond “always designing the most perfect feature,” there’s inevitably still some ambiguity as to what exactly implementing craftsmanship looks like. For this reason, it’s important to give clear, detailed guidelines—with real-world examples—to help guide your engineers.
For example, at LinkedIn, different teams have lists to help define what craftsmanship means to them based on their specific role and function. Additionally, we treat all changes as if they are changes in code, meaning that they are checked in, reviewed, and tested. This applies to network configuration, database schemes, application configuration and machine learning models, as well as to source code.
For organizations with a larger pool of resources, another option is to implement automated tests for new code that measure against specific metrics that contribute toward craftsmanship. As an example, we have a health score metrics platform at LinkedIn that measures metrics like code coverage, code style, dependency freshness, and others. The platform is configurable to test for specific metrics as needed. By providing a calculated score, along with an itemized report, engineers are encouraged to design the best software for our current needs. They can also work to improve the health score over time, reinforcing the idea that craftsmanship applies to development, debugging, maintenance, and all other stages of a piece of code’s life.
Give craftsmanship ongoing support
Practicing craftsmanship is similar to any other skill: If you don’t constantly work at it, it will begin to atrophy. It’s important that senior engineering leadership continues to make the value of craftsmanship clear, making it a prominent component of how success is measured.
But this edict is not only for senior-level employees; all engineers, at every level, should practice and reinforce craftsmanship through exercises like code and design reviews. Knowing that a colleague will review your code helps encourage you to do your best work, and having the opportunity to review others’ code exposes you to the work of other top-caliber engineers. Code reviews are an important part of our daily work at LinkedIn and have become ingrained in our engineering culture. If you’d like tips on how to conduct successful code reviews, I recommend reading this post.
Craftsmanship is a critical component of any successful engineering program, but it can be tricky to implement and scale as an organization grows. The process is additionally complicated by the fact that there is no one-size-fits-all definition for what craftsmanship looks like. But throughout my career, I’ve seen that the benefits of taking the time the create, grow and maintain a culture of craftsmanship far outweigh any costs. It’s the difference between engineering organizations that are okay, and those that are excellent.
This article is published as part of the IDG Contributor Network. Want to Join?