Peopleware by Tom DeMarco & Timothy Lister

Published 25 April 2019
Peopleware cover
Peopleware, Tom DeMarco & Timothy Lister

Summary

Too often project failures or people failures in companies are, at least partially, due to management issues. Management in its broad meaning can definitely make the difference between someone thriving in a company or feeling miserable with poor performance and leaving shortly. The same is true at teams levels as well.

This book is about what you should consider if your position implies any kind of management and how you can do your job better by caring about the people themselves and trying to help them rather than being directly obsessed by abstract financial or performance goals set by some upper management. A company if primarily made of its people and that’s why you should care mostly about the people when taking most decisions.

If you help your team in the right way they are anyway more likely to reach any of these goals than if you don’t!

Detailed Summary

Part 1 - Managing The Human Resource

Most failed software projects end up as they do not because of technical difficulty or lack of skills of the people involved, but because of organizational or relational failure in the team.

Of course software companies and projects can learn from the past (manufacturing companies, assembly lines, etc), they should not waste time re-inventing everything. But be careful of the kind of example you take into consideration. Software development has the particularity to be a mix of creative and technical work. So you need to take into account the creative aspect in the workflow and environment you create. Optimizing the process is not like optimizing an assembly line where reducing the time taken by each task is enough.

On the long run it is quite hard to make people work extra time. One way or another they will get a relax period to compensate an extra time one. Of course it can still be useful to hit some short term deadlines, but the aftereffects should be acknowledged and understood. You also need to take into account the effect it can have on people’s happiness or satisfaction. That said, the amount of time spent at work that a person considers “normal” can vary. So of course there is the legal context for that, bit consider that it is perceived relatively by all employees.

In virtually every project, the quality required by the business to consider the result good enough is lower than the one engineers would have in mind. On the long run, the ideal quality is probably somewhere in the middle. You can make people deploy features they consider low quality but it will affect their motivation and self esteem… On the other hand you can’t wait forever for the perfect quality to be reached. Consider making compromise like releasing when the minimum quality is reached but actually giving time to iterate on it after, and not just as a blank promise! Too often people hear that and then end up swamped in new work just after the release and don’t even have time to think about the improvement they would have made, but they still feel about it…

Parkinson’s law (phrase by a comedian…) states that the more time there is for a work the longer this one does. It is easy to find cases where it has applied in your own life and easy to extend that principle to give very short deadlines in order not to encourage people to slow down. But there are hints that deadlines considered unreachable also have a bad effect on productivity as well as satisfaction (probably related to the previous point). It also feels like this “principle” mostly applies to work you won’t want to do, luckily most developers are quite happy with their work and want to do it a lot, so by giving them impossible deadline you’re most likely just taking the risk of affecting their happiness and so productivity without getting much in return. Some even argue that the best way to get something done in “the proper time” is to not estimate it or set a deadline.

Managers should be focused on allowing people to work or helping them to work better not on pushing them to work more. They should keep experimenting with new tools and techniques around this topic but not be naive about any “magical solution” advertised out there.

Part 2 - The Office Environment

When designing office space, think about efficiency and so comfort of the people who will be working in it, not about coolness or even worse uniformity of the space itself. The office space is a mean to enable people to work better not an end in itself.

The quality of office environment and atmosphere is often suffering from a policy of default from managers, because they are not directly responsible for it. That ends up with people enduring mediocre workspaces for much longer than they should. It is hard to prove the effect of a good workspace on work quality, but it seems there is a correlation between people performing better and the office environment being favorable for work, in one direction or the other. So do pay attention to the office environment and any feedback about it.

Saving money on space is a dangerous bet, what you spend on office space per employee is often a small percentage of what you spend overall for this person. If you reach a point where they feel uncomfortable or find the environment too noisy, you’re at risk to make their work meaningfully worse and so lose more from the return on their salary than the savings you made on space. It’s hard to measure what is the correct dedicated workspace per person or noise level. And it can vary a lot per person. The main indicator is if the person complains about their conditions.

Productivity measurement is complicated. Not impossible, but hard to get in any kind of accurate, impartial, reliable way. Before investing too much time and effort around it, think about what you would do from the results. They should primarily be focused around the personal improvement of the employee rather than any kind of high management.

It’s easy to be aware of how much time someone spends in the office, even without measuring it officially. But, for creative, thinking jobs that is not necessarily proportional with the productivity. A better indication is the number of uninterrupted hours of work when someone have a chance to reach a deep concentration (and highly productive) level. Likely even your employees have no clue how many of these they get. By starting measuring it, you can both bring awareness around the concept and see if your office organization gives people a chance to get as many of these as possible. Chances are without even doing anything people will start both defending their own uninterrupted hours and respect more other people’s ones.

Whatever the interruption is caused by, phone, email, Slack, person coming to you desk,… The issue is usually not the “tools” but the habits we build around them. It has to be clear the most invasive means of communication have to be used only for the most urgent matters and that otherwise it’s ok for the receiver to dismiss or delay answering. It’s usually good to ask a few questions about the urgency of a question before interrupting someone with it. But as always, habits are hard to change.

Too often one of the main driver of office design (along with cost) is uniformity. But the ideal might be to try to give as much flexibility as possible so that people can arrange their own local area as it suit their team and work-style the best. On the noise topic, it seems when listening to music (which people end up doing with earphones if the environment is too noisy) people are less creative.

Christopher Alexander argues that one should not try to design and plan all the details about a big building but rather define the main lines and use patterns which enable people to customize their own area. The patterns ensure some kind of harmony but each sub area can become different based on the people in it rather than uniform. One way to see it is to imagine the building would have grown organically rather than being built all at once. He defined three principles:

  1. A philosophy of piecemeal growth
  2. A set of patterns or shared design principles governing growth
  3. Local control of design by those who will occupy the space

For an office some useful patterns to keep in mind are: Tailored work space from a kit, Windows, Indoor and outdoor space, Public space. Overall all these patterns respect both the individuality of the worked but also their belonging to a group. They lead to better productivity and happiness at work. In small groups that tends to happen organically, make sure it stays like that as it grows! If you’re in a big group it’s unlikely you can change the whole office philosophy, but as there are often space problem you could try to take the first opportunity to promote trying something else on a different space with your team.

Part 3 - The Right People

Hiring is an essential part of a manager’s job, and an often forgotten one. Maybe because it can be partly offloaded to HR. Hiring has two sides, getting great people in and making the ones already in stay (as well as getting the wrong ones out as soon as possible). In all of these one needs to be careful about all kind of bias which can affect decisions or risk to have a too uniform team and culture. It is also important to not overestimate how fast someone can change. If they are not really a fit at the hiring stage, they are unlikely to become a fit over the length of their stay in the company.

Great leaders tend to emerge naturally rather than being appointed. Give room for people’s leadership to express itself and remain on the look for signs of someone’s leadership being recognized and appreciated by people around them. They will inspire other people by their actions rather than their speeches.

One typical forgotten part about hiring is seeing someone’s job, or actual products. Make them show you one project, a portfolio or prepare a small presentation about one thing they worked on (make sure it’s relevant as well to what they will work on with you). It will also assess their capacity to explain, communicate and be understood, which is often an even bigger part of the job.

Embrace newness and diversity in a team, it will be appreciated by the members and bring more diverse opinions and solutions. Be careful though of not trying to bring to many new people at once, a team can only help people integrate at a given speed.

One common difference is the generational one. One sentence summarizing it well is “One generation’s technology is the next generation’s environment”. That causes different habits, opinions and expectations. Currently some of the main difference are about focus, newer generations tend to have their attention split between things a state of “continuous partial attention” while there is still a belief that you need a state of “flow” to do productive work. Whatever your company advocates or believes in, just make it clear from start. Most issues around these differences come from lack of communication. For example you would need to state that is it ok to spend x% of time on social medias but in consistent block, not x% of your attention continuously over the whole day, if that’s what you expect from people.

Annual turnover and cost of hiring someone (including onboarding time) is often no tracked while it can ends up causing major issues. On top of the plain cost, if turnover is high it will cause people to think with a short term view. While most decisions needed for a successful company are costly in the short term but produce great outcomes with time. You want people to feel part of a stable long term environment so they can take these long term high values decisions about the business.

Consider people salaries as investment not expenses. Of course it might not be possible to change that in your accounting, but for everything else try to see it this way. It represents better how one grows with the time spent and time given by the company to learn and try new things.

Part 4 - Growing Productive Teams

To live well and so perform well a team needs to be united and directed toward one goal. They call it “jelled teams”. Sometimes the mission or goal of the company is strong enough to serve for any team composing it. But more often, especially in big companies, this is not true, the goals are too often presented in pure financial terms for people to connect. They end up finding their motivation in smaller more local goals. I feel for engineers it’s often how they get attached to some technical “perfection” of their products as a goal and why it can be dangerous to fully take that away from them. As a manager you want to enable this connection to a goal and protect it when it has appeared.

It’s hard to know exactly how to make a team jell, but there are some clear point which seem to create bad conditions for it, so you can try your best to avoid them. Too often none of these is even done on purpose, it’s just this way by habit or it ends up happening by lack of attention to avoid it.

  • Defensive management.
  • Bureaucracy.
  • Physical separation.
  • Fragmentation of people’s time.
  • Quality reduction of the product.
  • Phony deadlines.
  • Clique control.
  • Phony management or value posters.
  • Overtime (as often it won’t be shared equally among people due to different personal lives).

Competition within a team is often dangerous for its good functioning. Be careful of techniques which can foster it like management by objectives and performance rating or review. Take into account that people can and should help each other. The performance of the team is more important than the one of the individual.

Give as many opportunities as possible for the team to build small successes, it might be on side projects, team events, chill moments, anything works really.

Give freedom to the team, freedom about where how and when exactly they are working. Once you’ve seen some results from them you should know how much of a risk (likely not much) you’re taking there. They will enjoy this freedom and give back much more in result. Of course that’s a bit of risk for you and you’ll have to shield them even more from upper management.

Some elements favoring team jelling are: Make a cult of quality. Provide lots of satisfying closure. Build a sense of eliteness. Allow and encourage heterogeneity. Preserve and protect successful teams. Provide strategic but not tactical direction.

Part 5 - Fertile Soil

It is good to provide people with a framework in which to operate. It will make it easier for new people to get in, and for everyone to operate in a rather consistent way. But don’t go extreme and try to codify everything with rigid processes. Leave room for adaptation and improvisation based on the good judgment of people. If they make wrong judgment you have bigger problems anyway. And if you try to cover all cases all you will achieve is having people paralyzed when things will inevitably go off track in an unplanned manner.

Any projects these days have a lot of risk. Risk free projects have pretty much all been done due to their obvious positive cost (risk)/benefit ratio. But don’t forget one main risk often put aside, the risk of your own failure or delay. It is a very annoying one to plan and account for but that’s precisely why it needs to be addressed. It is most of the time very real and not that unlikely, so someone (not necessarily the team itself if you want then to focus on the task) needs to plan for backups or alternative solutions.

Make sure meetings have a clear agenda and goal. Reduce ceremonies. Invite only people who are really relevant to the meeting. To help with FOMO, notes and outcomes should be shared afterwards.

Protect people’s time, both from your, their and others actions. Help them getting as much time as possible in big blocks to get deep into the work.

Help reducing email spam both by thinking twice before sending one and giving feedback on emails you receive that you consider pointless. Open organizations should allow people to pull information if and when they want to, not force it on them.

Most people can be reluctant to change. It can come from different reasons, fear of unknown, annoyance created by the chaos unavoidable in the transition, fear of losing a status or looking “ridicule” in the new state… But to improve we need change. When introducing one, don’t pay much attention to people who blindly accept or reject it but do make efforts to convince people who question it in a legit way before accepting it. It might not need only rational arguments though.

Organization learnings are usually happening at middle management level, where people are still hands on enough to see the daily problems and potential improvements. But it needs more than just time and projects accumulation. Strong communication between these managers helps!

Create communities around you. It will make people happier, with all the expected benefits from that (they will stay longer, enjoy work more, perform better) and it will also help yourself find a meaning in what you’re doing. It requires effort and creativity but can give bigger results than most “regular work’.

Part 6 - It’s Supposed to be Fun to Work Here

Chaos, and more specifically reducing it is what people enjoy often. Make sure to hand over some chaos to everyone so they can get their fair share of pleasure and enjoyment. You can even introduce some in some productive ways. Look into:

  • Pilot projects (changing one thing at a time in the typical approach).
  • Hackathon or war games between teams.
  • Brainstorming.
  • Diverse training, work trips, conferences, celebrations.

Leave room for free electrons and let them define their own ambitious goals. They will be that much more inclined to put in any effort necessary to meet them.

To apply any of the changes described you likely won’t be alone. Look around you, describe the new ideal you have in mind and surely if the situation is bad you’ll find many people ready to support you and apply necessary pressure if needed to make it happen.