A lot of jobs exist in a field where you get to combine several interests. Take photography. It’s impossible for photography to exist in a vacuum, something has to be depicted, which is determined by the photographer’s interests. Portrait photographers are drawn to people, and are great communicators, being able to tell the stories of the people they portray while getting them to tell their stories, relaxing in front of the camera, etc. Nature photographers love showing people the beauty that surrounds us if we only go look for it and spend time outdoors.
Software engineering is the same. Software is always applied to solve a problem that depends on the engineer; maybe it’s better tools for communicating, creating music, or making society more effective. Understanding both the craft and the industry it’s applied to is crucial for success.
I think this duality between the craft and what it’s applied to exists in a lot of fields. If you study law you can apply that to anything from civil rights to litigation to copyright enforcement. Civil engineers can work on anything from infrastructure like roads and bridges to buildings to dams. Electrical engineers can choose to design for drones, for medical implants, for spacecraft and power plants.
Most companies gather all sorts of people with competency in different crafts to work on the same problem in a given industry. For example a company making drones will collect software engineers, electrical engineers, optical engineers, mechanical engineers, designers, radio engineers, salespeople and marketers who all specialize in aerospace. Other companies, like consultancies, specialize on the craft, supplying for example software engineers, that might or might not carry existing experience in an assortment of industries.
The craft and the industry might change during the course of a career, and this is a great way to expand your skill set and gain a fuller understanding of the different nuances of both the craft and the industry. If you start as hobbyist musician, maybe you’ll become more obsessed with the mixing stage and become an electronic music producer. You’ll get a lot of experience with the software tools in that industry from the consumer side. If you later transition into a software developer making music productions tools you’ll create better software than an equivalently skilled engineer without that background. Maybe you’ll later do software engineering outside the music industry, transitioning to movie production tools. You’re now in a position to merge the best elements of three crafts over two industries in your work.
I think it’s great to embrace diversity in teams, but also look how you can diversify yourself. I find that it strengthens your empathy skills, but also enhances your sense of self-accomplishment and fulfillment.
The smaller the company you work in, the more crafts related to the relevant industry you might have to perform. While small companies (which can be only a single person) will inherently be able to work on “smaller” problems that big companies, they’ll often be way more agile. Not only because of the fewer communication links between the people solving the given problem, but also because those people will likely cover multiple relevant crafts each, enabling them to solve more problems without communicating at all. Communication will also be more efficient due to the higher empathy on both sides.
Personally this is the primary reason I prefer smaller companies. Empathy is often greater, people are more efficient, problems are solved faster, and you grow personally in several crafts. I also love the higher influence you have in such companies, enabling them to have a stronger voice and character outwards, compared to companies that always have to compromise and often becomes committee-driven and bland.
I do think however that larger companies often can stimulate much of these effects in their teams, and that they would benefit from doing so. One such technique would be seating people of different crafts together. Instead of grouping all software engineers in one place, the designers in one place, and the salespeople in another, seat these people together based on what they’re working on, creating a mini-company inside your company. Basically, structure departments by product (or industry) instead of craft. The engineers will thus have a shorter path to the designers, and hear more from support about what problems the users are facing. Designers will gain greater influence as they can be part of more informal discussions that affects the user experience.
Always focus on people.
Much of this has been said in other forms earlier, I liked Effective DevOps by Jennifer Davis and Katherine Daniels on building cultures for collaboration; Daniel Burka’s take on “Everyone is a designer. Get over it.”; for a good take on other ways bigger companies can preserve a unique voice, read John Saito on microcopy; John Green always talks about reading broadly; Jeff Bezos’ two pizza rule is a good technique to reduce the consequences of Brook’s Law.
Originally published at thusoy.com on May 14, 2017.