Fewer Engineers, Please

wrote this on in . 17 reactions

There's no doubt that engineers are an incredibly important component of a design project. That said, we're going to see a need for fewer pure engineers over the next couple of decades, and it won't be due to outsourcing.

It's crazy to see teams hiring huge numbers of engineers. What are they all doing? Adding too many engineers to the mix can create a lot of code to manage.

If it takes more than two pizzas to feed a project team, it's too large.

If it's not focused or well-written, it can bog down a project as the entire team works to improve the product.

The more engineers you have, the more points of view there are to contend with and the chances that the software solves a specific project decreases proportionally. Amazon's Jeff Bezos has a two-pizza rule: if it takes more than two pizzas to feed a project team, it's too large. If teams and the part of the project they're working on are purposely kept smaller, there is less to manage. You might even find you don't need an engineer manager to oversee results.

Of course, there are exceptions to the fewer-engineers approach. Specialist engineers who excel at their craft will continue to be in high demand. T-shaped engineers will as well, since multi-specialty team members understand and see the bigger picture of software design. One of the biggest culprits that leads to bad code is not understanding the project's goals or having enough breadth of skill to solve problems with less code.

A two-to-one ratio of designers to engineers is preferable.

At ZURB, our bottlenecks are usually not engineering-related. We usually need more interaction design support and find that a two-to-one ratio of designers to engineers is preferable. Indeed, the best designers are often those who can think through the interface, create visuals, and then code the interface themselves.

The next time you put a team together, take a look at the engineering needs of the project and remember: less is more. A code specialist or a single multi-talented designer is often all you need.

Graphic 01
Design Just Ate My Software: How Designers Are Leading the Product Revolution
Purple state png
The Purple State
Graphic2 01
Design Leaders: Who Do You Want to Be?

It has 20 comments.

Jack Lemon (ZURB) says

You must be kidding.

A 2 to 1 ratio of designers / engineers? What are designers doing exactly? Make a pretty picture? Draw something nice?

What is an engineering doing? Beside building things?

Man, tomorrow i will hears that programmers are useless because they have no idea how to use photoshop.

Bryan (ZURB) says

Jack- not saying that engineering isn't important or a critical part of a product. In the 100 or so start-ups we've helped, most run into engineering problems that could have been reduced by focusing the product around a few key ideas or improving the interactions for people.

Adding more engineers doesn't make a product better.

Jack Lemon (ZURB) says

So you are telling me they had engineers problems that designers jumped in and magically fixed?

Or did engineers fix the engineering issues as well?

Most startups have no clue what is white and what is black, and most engineers working for startups are college kids that think they know engineering.

But still, DESIGNERS ARE MADE TO MAKE PRETTY THINGS, not to come and suggest fixes to engineering problems.

Bryan (ZURB) says

Jack- Hmmm, not sure what designers you work with, but we have a team designers that also build things. And no, we didn't just magically jump in- we used our smarts to help build great software and websites.

Connor (ZURB) says

@Jack- I'll agree with you that designers shouldn't be focused around fixing engineering problems. What we are focused around is creating value in a product. A lot of times that means cutting down on the number "features" that don't make sense for a particular product.

Being a designer has nothing to do with making things pretty. To suggest that shows a misunderstanding of the designer's role. The most beautiful sites in the world are often the most useless. A good designer understands the user's needs and works with the engineering team to create an experience that is focused and easy to use.

Most of the time, throwing more engineers at a problem, without design direction, creates an unusable, bloated and crappy product.

Tanya (ZURB) says

I think part of the problem here is that the term "designer" is a bit misleading. At ZURB we overload the term a bit to include people with both traditional design skills, as well as front-end development ability. We don't have anybody who just works in Photoshop -- strong HTML/CSS chops are a must, as well as light javascript, PHP, and basic familiarity with Rails.

So we don't need tons of pure "engineers", but that's largely because we don't have any pure photoshop jockeys.

Matteo (ZURB) says

I agree with you Tanya, I'm a lecturer of Web Deisign and the first thing first I say to my students is that if they want to be Web Designers they have to know HTML/CSS, a bit of Javascript and at least understanding PHP: it's a must of our profession since a few years now.

So yes Bryan, I think your article is pretty good, I had a few problems myself working with engineers who add code and code like they do a fruit salad. But still it also depends what kind of problem solving is needed, the point is that if Web Designers are not just photoshop jockeys anymore, I reckon the other way around is for engineers.

It's all about skills and the environment you work in.

Mark (ZURB) says

I would like to add something about "designers." When I was educated in graphic design (traditional print design) I was told that a designer is a problem solver. I DO NOT just make pretty things. I may not be able to code, but I do understand code, usability and Information Architecture. We have to work together (designers and engineers) and we might as well learn how to do it well. Great article, and I think it was said perfectly that everyone has their own ratio of engineers to designers. It's the same for all workplaces that are successful. You have to find YOUR perfect mix. And it can't be too many of one or the other.

Jose Marmolejos (ZURB) says

I think you went from one extreme to the other. The ratio is irrelevant if your project manager takes the time to assign specific tasks according to the knowledge and training of each resource. A designer shouldn't be worried with the decision of which ORM will be used for a specific project.

As you put it a "code specialist" or "multi talented designer" would be more prone to create a useless db model with no indexes or constraints. So no, you need more than that to be able to ship a decent codebase for your product.

James (ZURB) says

It depends on what you're building, if you're building a simple website, then yeah, you're gonna need more designers than developers and you might get away with designers who do a decent impression of a developer, but if you're building a complicated web application, where performance is important and the quality of the code is paramount, then you need a development team who understand code and an architect who knows software design.

Also, if your project runs into focus issues, that's not an engineering problem, that's a project management problem. A good engineer will build what you specify. If you specify it wrong, that's your problem.

Ardi (ZURB) says

Hi Bryan, I agreed with you by using fewer engineer to build a product/website, because by using more engineer can cause more things to organize and manage, especially if you were the one who managing the project. Not to mention some of them also have different style of coding (even though already use some framework), and sometimes a bit naughty by writing some bad code, bad sql query and lack of comments.

I'm currently work as a Web Developer, I'm also capable of using photoshop, HTML/CSS, and PHP. So basically, Web Developer, engineer, or programmer, what ever you name it, should have multiple skill, esp. these days most of the project I'm handling has lots of demand and tight deadline also.

The two-pizza rule is a good idea though :-)

James (ZURB) says

Essentially what you're advocating is hiring multi-disciplinary people, you're just wording it in a really poor, condescending manner, and are just going to get flamed by developers.

Engineers are not supposed to be "Code Monkeys" - especially software engineers. It'd be just as easy for an developer-oriented shop to write the exact same post, except diminish the role of "designer" to mean "Photoshop Chimp", and put the responsibility of designing the software in the hands of one or more engineers who are educated and experienced in software design and UI/UX.

This post would go over a lot better if you had simply implied that there's an important role in any software team - the software designer. Whether that designer's background is in code or aesthetic design is irrelevant.

Anyone can learn how to use Photoshop, just like anyone can learn the syntax for whatever programming language you're building your software with. Having smart people who have insight into what makes software great is what's important, not what their title is.

Any team that has too many "primates" is doing it wrong - regardless of what their title is.

fredo (ZURB) says

this article is meaningless, hence I will refrain from commenting.

Tanya (ZURB) says

@fredo Mission failed.

Rodney Keeling (ZURB) says

I agree with most of the comments — there should not be a 2-to-1 designer to engineer ratio. Complete nonsense, as both positions have their difficulties and ease-advantages.

Josh (ZURB) says

The issue isn't so much having too many engineers and not enough designers, its having too many people. Bad software can be created just as easily by having too many designers as it can by having too many engineers.

Designers like engineers bring their own style and viewpoint to a project - too many of them might not result in the volume of the backend codebase exploding but it will result in an excess of moodboards, sketches, mockups, wireframes, a lot of extra front-end code, and redesigning things that don't need to be redesigned - the sum of which is just as wasteful as the backend cruft resulting from an excess of engineers.

The point is that adding too many people to a project regardless of their role results in unneeded waste due to the communication overhead incurred from additional team members (see Fred Brooks). Great software is made by a capable team that understands the core customer problem(s) - too many people obfuscate this understanding and slow the flow of information through a team.

Johan (ZURB) says

I think a big problem problem with this article is using the word "engineer". Even the (simplistic) wikipedia definition for engineer points this out: "Engineers are those who develop devices that serve as solutions to practical problems, by applying mathematics, scientific knowledge and ingenuity while considering technical, safety and cost constraints. The term is derived from the Latin root "ingenium," meaning 'cleverness'."

Engineers solve problems. In any kind of field. An engineer doesn't just "create code" or what have you. They solve problems. THAT is their core business. By definition. A good engineer a has the insight to understand the ideas of the designer, and the technical skill/knowledge to translate those ideas into tangible solution. In that sense, a true engineer is equal and in some (many?) cases superior to a "designer". The "best designers" you mention in the article are also "pro engineers".

Who/whatever you are referring to, they are not engineers. A good designer OR a good engineer however should have the ability to lead/guide them into working towards one complete product.

And for what it's worth, I consider myself to be far closer to being a designer than an engineer. All the great "designers" of the past were not designers at all - they were engineers.

Deep Sherchan (ZURB) says

I believe, this issue with Designers Versus Engineers is the result of different people viewing the matter from different perspective. (Elephant and 5 blind men illustrates it perfectly)

For me, a"Traditional House Architect" is the best model to illustrate today's web development and other design related issues. Architect is the one who understands every aspect of the technology from the kind of material, to its efficiency to its cost; and he/she designs (not like drawing and sketching) the overall model of the project by removing or adding essential details to the project.

A project such as designing a building requires every effort from construction to budgeting to designing.. So basically, having a well learned and experienced project/product with an essence of usability, efficiency and Aesthetics should be work. and offcourse a good project leader is a must.

(Thoughts inspired by Bill Buxton)

Chuck Yeager (ZURB) says

I see the problem. You don't know what the term 'engineer' means. An engineer is anyone accredited by the ABET. They have a broad range of techincal training that includes Calculus, Physics, Electrical, Chemistry, and other optional fields.

What YOU are calling an engineer is really just a technician. And there are definitely too many of those.