Summarize 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.