The Ultimate Testing Tool
Tags: discuss, testing, coding, watercooler
Published: 2024-03-22 16:30:00

Hammock-driven development by Rich Hickey, available on [Youtube](https://youtu.be/f84n5oFoZBc?feature=shared), is a theoretical talk on testing solutions before building anything. It was a great talk, and Rich Hickey gave a very engaging presentation. The problem statement is that iterating features during production or development are expensive. 

The proposed was to iterate instead in the theoretical hammock, which involves a. Focusing and stepping away from the keyboard and b. Evaluate and test each idea through deep reflection

> Rich Hickey: "So everybody says design is about tradeoffs. Everybody knows this. Usually when they talk about tradeoffs in their software, they're talking about the parts of their software that suck. I had to make these tradeoffs. That is not what a tradeoff is, right? You have to look at, at least, two solutions to your problem. At least two, and you have to figure out what's good and bad about those things before you can say, "I made a tradeoff." So I really recommend that you do that, and when you do it, you might want to write that down somewhere."

The goal is to filter out the non-essentials in a state where there are no consequences involved. It is easy to eliminate solutions when we are not yet bound to them. Unhealthy attachment is, after all, the root of all evil. In addition, a produced unit of work can sometimes carry some part of our egos, resulting in unusually high expectations. Ideally, the optimum solution should be produced through proper testing and maximum iteration, where the best solution is only limited by its potential. 

> Rich Hickey: "We also have a tendency, because we're all smart and we love being smart and sort of figuring out how to make things go.."

Essentialism: The Disciplined Pursuit of Less by Greg McKeown is about adopting a system, a habit, or a skill to discern what is only essential. The book talks about events and anecdotes about situations that may have caused disasters because people focused on the wrong things. It is a New York Times best-seller. To some readers, the book can be repetitive; it can be reduced to less than a hundred pages.

One notable chapter examines an experiment explaining why we sometimes avoid eliminating non-essentials. Psychologists Martin Seligman and Steve Maier researched a group of dogs. One group was given electric shocks and could stop them from happening by pressing a lever. The second group received the same shocks as the first group, but it was without the lever. They were all given the same intensity and timing. Third, as a control group, no shocks were received. 
The experiment then proceeded on to the next stage. All three groups of dogs were relocated in a box divided into two compartments separated by a simple wall. It is a low barrier for any dog to jump across. While inside the box, they discovered that the dogs from the first and third groups would jump over the barrier to the safe area when they received electric shocks. However, the second group of dogs did not jump and accepted the electric shocks passively as if it were their fate. Seligman and Maier theorized that the second group interpreted the shocks as out of their control. They tended to perceive any new bad situation as helpless. Thus, they named this as "Learned helplessness." 

To start coding on what comes up first to be the candidate for pull request is learned helplessness. To unlearn this, we need to develop a new skill. A skill that we are comfortable using any moment that we feel good when we relentlessly discern and eliminate. The discipline to pursue less.

Here, we propose a system. We offer it as a simple two-step process. It can be saved in any file format but must be accessible anywhere. Note-taking apps, such as mobile apps, are recommended.

First, we propose to fill up two things:

1. Date - We recommend any tool that shows a list or calendar view so that we can notice our progress. 

2. Need - This could be a task assigned at work, a topic for exploration, a problem, or a question about what to do next.
Then, set aside 25 minutes of focus. Step away from online devices, set a timer, and start testing this idea with eyes closed. Think of at least two solutions and their tradeoffs.

Then, when the time expires, we fill up the second form below:
1. Iterations - the total number of evaluations it ran in our heads
2. I choose to do: - Here, we note the essential that passes the test.
3. I choose not to do: - all items eliminated during the process.

Practice these:
- Landing my dream job  
- An industry that AI will disrupt two years into the future
- Extra side income


In conclusion, Hammock-driven development by Rich Hickey and Essentialism by Greg McKeown both examine and propose practices that can enhance our ability to test, iterate, and eliminate non-essentials. Martin Seligman and Steve Maier's research on learned helplessness explains why developing a sense of control is essential. Hopefully, we provided a guide to help build efficient and high-quality solutions.