magic starSummarize by Aili

Algorithms we develop software by

๐ŸŒˆ Abstract

The article discusses various software development heuristics and methodologies, including:

  • The "start over each day" approach where the developer starts from scratch on a feature each day if they can't complete it
  • The "write everything twice" approach where the developer solves a problem, stashes the code, then rewrites the entire solution
  • The "gun to your head" approach where the developer is challenged to come up with a solution in a much shorter timeframe than originally proposed

๐Ÿ™‹ Q&A

[01] "Start Over Each Day" Methodology

1. What is the "start over each day" software development methodology?

  • The developer starts working on a feature at the beginning of the day
  • If they don't finish the feature by the end of the day, they delete all the code and start over the next day
  • They are allowed to keep any unit tests they wrote

2. What are the benefits of the "start over each day" approach?

  • It helps the developer carve a smoother path to the final solution, resulting in very clean code
  • It helps junior engineers get to 100,000 lines of code faster, which is valuable experience

3. How does the "start over each day" approach relate to the "write everything twice" approach?

  • The "start over each day" method is an even more extreme version of the "write everything twice" approach
  • Both methods involve repeatedly solving the same problem, which helps the developer retain knowledge of patterns and rewire their neurons

[02] "Write Everything Twice" Approach

1. What is the "write everything twice" approach?

  • The developer solves a problem, stashes the code onto a branch, then rewrites the entire solution from scratch
  • This approach was discovered by accident after the developer's laptop died, and they had to rewrite a few days' worth of work

2. What are the benefits of the "write everything twice" approach?

  • Rewriting the solution only takes 25% of the time as the initial implementation
  • The resulting code is of much higher quality, usually a 2x improvement
  • This trade-off of 1.25x the time for 2x the quality is usually worth it for long-term maintainable projects

3. When should the "write everything twice" approach be applied?

  • The author notes that it should be applied intelligently, and not literally writing everything twice

[03] "Gun to Your Head" Technique

1. What is the "gun to your head" technique?

  • The developer is asked to come up with a solution to a problem, and is then challenged to finish it in a much shorter timeframe (e.g. 24 hours instead of 4 weeks)
  • This is meant to break the developer's frame and anchoring bias, and induce them to find a radically different, faster solution

2. How effective is the "gun to your head" technique?

  • The author states that this technique surprisingly often works, where the developer can come up with a solution that can actually be done in just a few days, rather than the original month-long plan

3. What is the purpose of the "gun to your head" technique?

  • The purpose is not to generate the real solution, but to put a lower bound on what's possible, and then use that as a starting point to find a better solution than the original plan
Shared by Daniel Chen ยท
ยฉ 2024 NewMotor Inc.