Timothy Ferriss‘ “The 4-Hour Workweek” might be my favorite book this year. Tons of lessons about how to be productive, as well as how to enjoy life to the fullest, and reading the book has left me excited about the future while reconsidering many of my other choices.
Some favorite takeaways:
- The perfect job is the one that takes the least time. The goal is to free time and automate income.
- ‘If only I had more money’ is the easiest way to postpone the intense self-examination and decision-making necessary to create a life of enjoyment – now and not later. Busy yourself with the routine of the money wheel, pretend it’s the fix-all, and you artfully create a constant distraction that prevents you from seeing just how pointless it is. Deep down, you know it’s all an illusion, but with everyone participating in the same game of make-believe, it’s easy to forget.
- What are you waiting for? If you cannot answer this without resorting to the previously rejected concept of good timing, the answer is simple: You’re afraid, just like the rest of the world. Measure the cost of inaction, realize the unlikelihood and repairability of most missteps, and develop the most important habit of those who excel, and enjoy doing so: action.
- Retirement as a goal or final redemption is flawed for at least three solid reasons:
- It is predicated on the assumption that you dislike what you are doing during the most physically capable years of your life.
- Most people will never be able to retire and maintain even a hotdogs-for-dinner standard of living. Even one million is chump change in a world where traditional retirement could span 30 years and inflation lowers your purchasing power 2-4% per year. The math doesn’t work.
- If the math doesn’t work, it means that you are one ambitious hardworking machine. If that’s the case, guess what? One week into retirement, you’ll be so damn bored that you’ll want to stick bicycle spokes in your eyes.
- If it isn’t going to devastate those around you, try it and then justify it. Get good at being a troublemaker and saying sorry when you really screw up. Ask for forgiveness, not permission.
- Ninety-nine percent of people in the world are convinced they are incapable of achieving great things, so they aim for the mediocre. The level of competition is thus fiercest for ‘realistic’ goals, paradoxically making them the most time- and energy-consuming. So do not overestimate the competition and underestimate yourself. You are better than you think.
- Doing something unimportant well does not make it important. Requiring a lot of time does not make a task important. What you do is infinitely more important than how you do it. Efficiency is still important, but is useless unless applied to the right things.
- Remember that most things make no difference. Being busy is a form of laziness – lazy thinking and indiscriminate action. Being overwhelmed is often as unproductive as doing nothing and is far more unpleasant. Being selective – doing less – is the path of the productive. Focus on the important few and ignore the rest.
- If you haven’t identified the mission-critical tasks and set aggressive start and end times for their completion, the unimportant becomes the important. Even if you know what’s critical, without deadlines that create focus, the minor tasks forced upon you (or invented) will swell to consume time until another bit of minutiae jumps in to replace it, leaving you at the end of the day with nothing accomplished.
- The key to having more time is doing less, and there are two paths to getting there, both of which should be used together:
- Define a short to-do list
- Define a not-to-do list
- Don’t ever arrive at the office or in front of your computer without a clear list of priorities. There should be no more than 2 mission-critical items to complete each day. Never. It just isn’t necessary if they’re actually high-impact.
Drawing, writing, and reading are some of the important things I’d like to keep doing in my life that do not always involve sitting in front of a computer, unlike software test automation. These can be done digitally of course (which many of my peers do) but I’ve found out that they’re really difficult to pursue when I’m already comfortable in my computer chair and starting back at a monitor, with movies and series episodes wanting to be played or the world wide web egging me to log on. And in my heart and in my mind I know that these stuff that I value are of greater importance than these distractions, yet they’re really hard to ignore when I’m already there looking at a computer screen, tired from the day’s worth of work and my body telling me it’s alright to relax. The next thing I know, my willpower is down to zero and minutes later I am surfing pages and pages of the internet and responding to notifications or watching Game of Thrones or The Big Bang Theory.
So now I am trying to find times of the day when I can do these things that I love, times of the day when I have the highest chances of success of saying “No!” to the pull of the PC, and get things done, doing one small thing I’m going to be proud of at a time. I find out that it’s usually in the morning before breakfast that I have the most resolve and control over my actions, and I’ve decided to maximize that option, especially during weekends. On weekdays, I must review the structure of my day, of when and where I can haggle a tiny piece of my time, maybe 30 minutes or so, and create a new habit that lets me focus on valuable projects bit by bit. I’ve already found a process that works for my software testing endeavors (easy, because my job sort of requires me to use my own projects) so there’s no reason I can’t find a method or two that makes it possible for me to do these other activities that are good for my soul.
We are due for the project release very soon. Why do we need to fix this bug?
If the computation’s all wrong, if our clients will be redirected to a wrong page or if they can’t do an action on a control, if the page itself does not load or if there are security loopholes, then by all mean we need to fix those issues immediately. Right now, in fact. Our programmers will even be glad you pointed that out and will be busting their asses as soon as possible to find a solution, no further questions asked (except for the procedure to replicate the error).
But if you tell us to change an element’s alignment, font size or color, if you say to us that we must change an existing copy for one or two scenarios when the existing content actually works fine and we risk breaking the other many scenarios that we have, you’re not helping us do our jobs well. You’re making our heads ache in frustration and then we become more prone to errors because we’re in a bad mood. We know you meant it well when you say that it’ll make the app more beautiful, more pleasing to the eye, but do you really want us to prioritize that issue over maintaining the integrity of the current build when we’re days, hours even, away from the release? Can’t it wait?
Sure, we can make those changes. But please let us do it on a sprint when there’s ample time for proper development and testing, not when we all have our hands full trying to see if everything is working as intended. Help us make sure we are ready to go live, not drown us with bug reports that often we can leave alone for the next cycle.
The project deadline looms and the software development team is experiencing bouts of pressure to finish the remaining tasks. The software tester, meanwhile, starts to perform her system tests and finds issues in the assumed resolved tasks. She reports them to the programmers one after another, bullets are fired in succession, and the developers become more anxious. With each found bug thrown back for resolution and current tasks held back, the cycle continues and adrenaline and worries and fear blow things out of proportion. In the end, the whole development team suffers: developers, distracted by the bug reports that need fixing, are unable to finish what they started, and software testers, who have become so preoccupied with their need to pass a perfect software, forget to take extra care of themselves and their teammates who can only do so much in a given time.
The expert software tester knows how to pace herself and her team. She’s learned what issues needs to be addressed first (or last) and recognizes how well her team can handle them. She acknowledges the need to test as early as possible and she does not throw problems for mending all at once or one after another. She remembers that each member of the group, including herself, requires enough rest to be able to work well, to finish most things (if not everything) in high quality fashion.
Software testers are often swamped doing reactive type of work. Day-to-day tasks are filled with checking and responding to emails, creating bug reports, testing bug fixes, or providing important testing information to people who are asking. Their work schedule can be easily overwhelmed with following up on updates from programmers or confirmation from product managers, especially while there still a backlog of testing to do for demanding clients, and (most of the time) there isn’t much room for doing anything else. This poses an interesting problem: a software tester that is too busy responding to issues day-in day-out will soon find herself stuck in the flow without changes in processes, always just reacting to whatever new concern is the most priority, just a cog in a machine.
Better for her to challenge oneself to move outside the loop, to find time bit by bit, to find ways to experiment and improve her skill set, to make herself more valuable in software testing work, to balance reactive work with creative work without waiting for instructions from the boss.