← Back to books • Amazon
Most serious issues of technical projects are sociological in nature.
An average manager is schooled in the job being done, not managing of the job. They’ve got little management aptitude, knowledge and practice.
Make a Cheeseburger, Sell a Cheeseburger
Development is inherently different from production, yet many managers don’t treat it that way.
In manufacturing these things make sense:
- eliminate error
- treat people as replaceable
- don’t let workers goof off
- optimize for steady state
- eliminate experimentation
Development is inherently error-prone – making mistakes is part of the job. Some designs are faulty – they need to be discarded, not repaired. Fostering an atmosphere that doesn’t allow for error simply makes people defensive.
Kicking people to work harder simply does not work.
Embrace and cultivate people’s individuality.
You can’t dedicate 100% of the time to just doing the work. “There ought to be some provision for brainstorming, investigating new methods, figuring out how to avoid doing some of the subtasks, reading, training, and just goofing off.”
Vienna Waits for You.
For any amount of overtime, there is an equal and opposite amount of undertime. Overtime is like a sprint – it might work in the short term, but in the long term, the benefit will cancel out (and leave people burned out).
Whenever you measure productivity, you must take into account employee turnover. If you push too far to increase efficiency of the system, you might lose out in the end by losing key employees unhappy with the job.
“People under time pressure don’t work better— they just work faster.” (At the cost of quality and their own happiness)
Quality— If Time Permits
Quality (regardless if consumers care) is incredibly important to the builders – it’s a measure of their own self-esteem. Building low-quality work is demoralizing.
Quality is a means to higher productivity (in the longer term) – enough to offset the cost.
Parkinson’s Law Revisited
Parkinson’s law is not a law. It’s meant to be funny, and “almost certainly doesn’t apply to your people”.
“In a healthy work environment, the reasons that some people don’t perform are lack of competence, lack of confidence, and lack of affiliation with others on the project and the project goals.”
Programmers seem to be more productive when estimating the work themselves, rather than when the estimation is done by the manager. Productivity seems to be even greater when estimate is done by a system analyst. And projects with no estimates at all outperformed them all.
“We’re all under a lot of pressure to improve productivity. The problem is no longer susceptible to easy solutions, because all the easy solutions were thought of and applied long ago.”
“The manager’s function is not to make people work, but to make it possible for people to work.”
(Part II: The Office Environment)
“Some days you never spend a productive minute on anything having to do with getting actual work done.”
“There are a million ways to lose a workday, but not even a single way to get one back.”
“You Never Get Anything Done around Here between 9 and 5.”
Disturbing possibility: people do overtime not to increase quantity, but to improve quality – because getting anything done in the normal office hours is impossible.
There seems to be little correlation between language used, years of experience (if above 6 months), salary and programmers' performance in completing a coding task.
Just as there’s a 10x productivity difference between best and worst programmers, there is a 10x performance difference between best and worst organizations. Best/worst programmers are highly correlated to best/worst organizations. It seems that either the workplace highly impacts productivity or good workplaces attract good programmers.
Having enough space and a reasonably quiet work environment positively impacts programmers' performance.
Saving Money on Space
Workplaces get smaller and worse because dumb managers want to save money on space, without considering the downside. Money spent on office space is very small compared to salaries – and getting cheap on the office makes workers less effective.
“Saving money on space may be costing you a fortune.”
Brain Time versus Body Time
According to a study, people work 30% of the time alone, and 70% with other people. 30% of the time, they’re noise-sensitive, the remaining time they’re noise generators. Yet, the 30% is where real work happens.
It takes 15+ minutes to get into the flow. A 5-minute interruption is 20 minutes of work time lost.
E-Factor = Uninterrupted Hours/Body-Present Hours
Many organizations have the e-factor as low as 10%.
- Let people and teams arrange their workspace and furniture any way they want
- Everyone should have a window in their office
- Outdoor space is great (eg. a terrace in a building)
- Intimacy gradient: at the entrance is space for outsiders; moving further inside there’s shared space for insiders and further still – space for individuals.
(Part III: The Right People)
“The final outcome of any effort is more a function of who does the work than of how the work is done.”
- Get the right people.
- Make them happy so they don’t want to leave.
- Turn them loose.
The Hornblower Factor
Managers like to think that every person has inherent worth and it’s his job to find that untapped potential in their subordinates. This is a comforting view, but reality is, managers just don’t have enough influence to change people. If someone isn’t right for the job, they will probably never be.
Let’s Talk about Leadership
“Leadership on the job is rare, but talk about it is ubiquitous.”
One view of leadership: it’s a work extraction mechanism. Leaders are at the top, getting people at the bottom to work.
Different view: it’s a service for people doing the work. A leader is the catalyst. A leader doesn’t make people work, she makes it possible for people to work.
There’s a lot of talk about “innovation” but nobody is given any time to innovate, since everyone is 100- percent busy.
Innovation invariably happens from below and takes some rebel leadership to pull off.
Hiring a Juggler
It makes no sense not to ask to see programmer’s past work before hiring.
Try holding an audition. It won’t tell you much about candidate’s skills at the job, but you can tell if she has good communication skills and fits with the culture of the group.
Technology is whatever wasn’t around when you were growing up. Environment is what stayed the same. (One generation’s technology is another generation’s environment)
Continuous Partial Attention is the opposite of flow. Lots of young people seem to be in this state at all times.
Happy to Be Here
The turnover costs are huge. Just the visible costs are very significant: those of finding, hiring and getting up to speed a new employee. But there are more toxic costs: companies with high turnover have pathological short-term thinking. That’s terrible for companies long term.
Mentality of permanence. The best companies foster culture where it seems stupid you’d want to quit. Those companies invest heavily in their employees and make the best possible workplace for them.
Think of people as an investment, not an expenditure. A lot of value gets accumulated in a good employee over time. Hold onto that.
Part IV: Growing Productive Teams
“People work better and have more fun when the team comes together”
A jelled team (a true team, not merely a group) is one that’s greater the sum of its parts. When people work as a team, with people they enjoy working with, when they feel like a part of something great going towards a common (even if arbitrary) goal, productivity skyrockets.
You can’t make a team jell, but there are things that almost certainly prevent it from happening:
- defensive management (no trust in the people)
- physical separation
- fragmentation of people’s time
- quality reduction of the product
- phony deadlines
- clique control
- chronic overtime
Internal competition between team members is NOT a good thing. It prevents the team from jelling — there’s an atmosphere of distrust and selfishness. It’s when your growth is aligned with team’s growth when teams jell.
Some elements that might help build team chemistry:
- 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 V: Corporate culture
Build self-healing systems — don’t overestimate automated deterministic systems. Beware Methodologies.
Hawthrone Effect: sometimes, people perform better when they’re trying something new.
In most organizations, email is corporate spam. Build a spam-less self-coordinating organization.
Two dangerous behaviors: risk-taking without risk management; and risk-aversion that makes ambitious accomplishment impossible.
Managing risk of non-performance of third parties is obvious. Don’t forget to manage the risk of your own non-performance.
Beware early overstaffing.
Stand-Up meetings: too long meetings full of distractions are impossible.
Working meetings have a clear goal and agenda. It’s obvious who needs to be invited and when the meeting is over.
Ceremonies: meeting ended by a clock. It’s not to get something decided, it’s all FYI. What a waste of time.
Idea to consider: an open-space meeting, that’s all about networking, informal one-to-one interactions.
“Status meetings” are all about the status — of your boss, not the project.
Making change possible
Consider that before a new change becomes status quo, there’s chaos and period of practice. If people don’t feel safe to fail during this process, change is impossible.
Accumulation of experience ≠ learning
Two forms of learning:
- Organization teaches its people new skills
- Organization itself changes to operate differently
In both cases, “learning is limited by organization’s ability to keep its people”.
Organizational learning happens in the middle. Therefore, for successful learning, you need strong middle management (yes, really). Problem: most “management teams” are not really teams.
Part VI: It’s Supposed to Be Fun to Work Here
A little chaos might be a good thing (for people’s happiness). Technological progress causes chaos to decline more and more, though. Try creating a little bit of chaos to make work a bit more fun. A few ideas:
← Back to books • Amazon
- Pilot projects — where you try something new and unproven. (Caveat: don’t experiment with more than one aspect of development at the same time — that’s just risky)
- War games
- Training, trips, conferences, celebrations and retreats