Developers, "It Doesn’t Have to Be Crazy at Work"! "Rework" it!
Couple of years ago, I heard about two books wrote by Jason Fried and David Heinemeier Hansson - the founders of the Ruby on Rails web development framework and the web-based project management tool Basecamp . They were named "Rework" and "It Doesn’t Have to Be Crazy at Work" with main focus on how to run business successfully. Since then I have read them multiple times and I was always astonished how brilliant is business, software development and even life described in brief but accurate manner. That's why I decided to pull out some of the key points I found most accurate and really practical and important for developers in particular. I strongly believe that if we apply just some of those points, the overall efficiency and quality of work will raise tremendously. This is why I highly recommend buying and reading those books. Let's move to my list:
8 hours per day and 40 hours per week is more than enough time to get your job done. Less is fine, more is not.
Context switching and multitasking is what burns you out.
Aim to be efficient, rather than productive. Focus on getting your job done quickly and efficiently, not doing all the work possible.
Avoid overworking and overtime. Work ethics has nothing to do with constantly being available.
Offices are no more working spaces, rather they are distraction places. The less distractions you have, the more effective you will be.
When you do collaborate, try to use passive communication tools, like e- mail, that don't require an instant reply, instead of interruptive ones, like phone calls and face-to-face meetings. That way people can respond when it's convenient for them, instead of being forced to drop everything right away.
Don't expect immediate answer from anyone. If they respond, then you have what you needed. If they don’t, it’s not because they’re ignoring you—it’s because they’re working on something else at the moment. Respect that! Assume people are focused on their own work.
Almost everything can wait. And almost everything should. Say something, then get back to work. Don’t expect anything. You’ll get a response when the other person is free and ready to respond.
Shared work calendars are destructive. Taking from someone's time should be avoided unless really important and relevant for the person. Carefully cherry-pick attendants of a meeting you want to organize. Avoid "Optional" attendants as well.
If you decide you absolutely must get together, try to make your meeting a productive one by sticking to these simple rules:
- Set a timer. When it rings, meeting's over. Period.
- Invite as few people as possible.
- Always have a clear agenda.
- Begin with a specific problem.
- Meet at the site of the problem instead of a conference room. Point to real things and suggest real changes.
- End with a solution and make someone responsible for implementing it.
When you don’t own the vast majority of your own time, it’s impossible to be calm. You’ll always be stressed out, feeling robbed of the ability to actually do your job. In most of the cases interruptions and meetings are draining your energy, not the work itself.
You can only do great work if you have adequate quality time to do it.
There’s absolutely no reason everyone needs to attempt to know everything that’s going on at our company. And especially not in real time! If it’s important, you’ll find out. Don't try to follow-up all announcements and email streams you receive, focus on your work.
Everyone has a trust battery towards everyone else. The trust battery is a summary of all interactions to date. A low trust battery is at the core of many personal disputes at work. It powers stressful encounters and anxious moments. When the battery is drained, everything is wrong, everything is judged harshly.
Respect your sleep time, it's your recovery time. All-nighters are red flags, not green lights. If people are pulling them, pull back. Nearly everything can wait until morning.
Aim proper work and life balance. If you work Monday to Friday, weekends should be off-limits for work.
The only things that matters when hiring new team member is who you are and what you can do. Someone the rest of the team wants to work with, not just someone they’d tolerate. It doesn’t matter how good you are at the job if you’re an ass.
Tests, CVs, resumes, blackboard problem solving are bullshit. The only real marker for suitable is real work. So give people real work to do and the appropriate time to do it in. The same kind of work they’d be doing if they got the job.
The quickest way to disappointment is to set unreasonable expectations.
Nurturing untapped potential is far more exhilarating than finding someone who’s already at their peak. Many of the best people were hired not because of who they were but because of who they could become.
Company benefits which traps you in the office (free lunch, dinner, game rooms) should be considered with a warning flag. Outside-of-the-office benefits are the most valuable.
Open-plan offices suck at providing an environment for calm, creative work done by professionals who need peace, quiet, privacy, and space to think and do their best. Make sure you preserve library-like office atmosphere and avoid noise. Go to a meeting room for full-volume discussions.
Vacation should not be Fakecation. When you are off, you are off. Relax and forget about your work. Everyone needs a chance to truly get away and reboot.
All chat all the time conditions you to believe everything’s worth discussing quickly right now, except that hardly anything is. Almost everything can and should wait until someone has had a chance to think it through and properly write it up. Real-time sometimes, asynchronous most of the time.
When you present work or new idea, it's better to be written up first. You don’t want reactions. You don’t want first impressions. You want considered feedback. One to read it over. Read it twice, three times even. Sleep on it. That’s how you go deep on an idea.
Don’t tie more knots, cut more ties. The fewer bonds, the better. Dependencies are tangled, intertwined teams, groups, or individuals that can’t move independently of one another. Dependencies slow us down, tangle us up, and led to self-imposed frustrations.
When you get a bunch of people in a room under the assumption that consensus is the only way out again, you’re in for a war of attrition. Whoever can keep arguing the longest stands the best chance of winning. That’s just silly. Someone in charge has to make the final call, even if others would prefer a different decision. Good decisions don’t so much need consensus as they need commitment.
Companies waste an enormous amount of time and energy trying to convince everyone to agree before moving forward on something. What they’ll often get is reluctant acceptance that masks secret resentment. Instead, they should allow everyone to be heard and then turn the decision over to one person to make the final call. It’s their job to listen, consider, contemplate, and decide.
When considering new idea, begin prototyping as soon as you can in the first two weeks of the exploration. Aim to start looking at something real as soon as possible. Nothing tells the truth like actually experiencing the idea in real life.
Best practices imply that there’s a single answer to whatever question you’re facing. It implies that you really don’t have a choice in the matter. Resist the implication. You always have a choice.
The only way to get more done is to have less to do.
Knowing what you’ll say no to is better than knowing what you’ll say yes to.
Promises are easy and cheap to make, actual work is hard and expensive. Beware what you promise.
Learning from mistakes is overrated. What do you really learn from mistakes? You might learn what not to do again, but how valuable is that? You still don't know what you should do next. Learn from successes.
Getting infatuated with details too early leads to disagreement, meetings, and delays. You get lost in things that don't really matter. You waste time on decisions that are going to change anyway. So ignore the details for a while. Nail the basics first and worry about the specifics later. You often can't recognize the details that matter most until after you start building.
If you need to explain something, try getting real with it. Instead of describing what something looks like, draw it. Instead of explaining what something sounds like, hum it. Do everything you can to remove layers of abstraction.
A lot of people get off on solving problems with complicated solutions. Flexing your intellectual muscles can be intoxicating. Find a solution, one that delivers maximum efficiency with minimum effort. You don't get to show off your amazing skills. You just build something that gets the job done and then move on.
Momentum fuels motivation. It keeps you going. It drives you. Without it, you can't go anywhere. If you aren't motivated by what you're working on, it won't be very good.
If anything takes us longer than two weeks, bring other people in to take a look. They might not do any work on the task, but at least they can review it quickly and give their two cents. Sometimes an obvious solution is staring you right in the face, but you can't even see it.
Break the big thing into smaller things. The smaller it is, the easier it is to estimate. You're probably still going to get it wrong, but you'll be a lot less wrong than if you estimated a big project.
Whenever you can, divide problems into smaller and smaller pieces until you're able to deal with them completely and quickly. Simply rearranging your tasks this way can have an amazing impact on your productivity and motivation.
Make choices that are small enough that they're effectively temporary. When you make tiny decisions, you can't make big mistakes. These small decisions mean you can afford to change. There's no big penalty if you mess up. You just fix it.
Let your latest grand ideas cool off for a while first. By all means, have as many great ideas as you can. Get excited about them. Just don't act in the heat of the moment. Write them down and park them for a few days. Then, evaluate their actual priority with a calm mind.
Years in experience means nothing, How long someone's been doing something is overrated. What matters is how well they've been doing it.
Don't make up problems you don't have yet. It's not a problem until it's a real problem. Most of the things you worry about never happen anyway.