4 ms·
- Argue against your position: similar to "reductio ad absurdum". It often is easier to argue against a position and demonstrate the invalidity of these argumen
by Jugurtha 6y ago
- Argue against your position: similar to "reductio ad absurdum". It often is easier to argue against a position and demonstrate the invalidity of these arguments, than it is to argue for a position directly.
- Write down your thought process, let people submit pull requests for bug fixes or improvements. In other words: share your reasoning process and let others poke holes in it or run with it. The resulting conversation will be a draft for the next iteration. I often share something like a "Here is what I think, and here's why I think it's true". Conclusion and premises. The questions and remarks can shatter a premise, or shed light on an assumption and my whole argument can crumble, but I want that. Imagine if people building bridges relied on "gut feeling" and forewent testing. Testing is the willingness to see what you built be destroyed in a controlled environment so it doesn't in normal operations. Testing code, testing rationale, testing a bridge, testing an electronics design, etc.
One accelerant of this is the following: Imagine you won't be available for two weeks starting tomorrow, what would you want your team to know that you consider most important. Write those bullet points, expand on them, share them. What would hinder the team's progress if you didn't communicate it?
Writing things down also allows you to diff what you think, which is not obvious if it's continuous. Going back to what you wrote three months ago is humbling, as you may have learned new things.
One of my routines is going over our backlog and asking: "What was true a week ago that is not anymore?". We document the rationale in our issues so we clearly see what really isn't true.
For example: we're doing X because Y. Y can be the fact that a third party library or another part of our system simply cannot do Z (reference the issue and the conversation, not just "I think it can't do Z"). A week later, Y could change and X is now possible.
If we don't do this, we'd have to carry it in our heads with a gazillion other parameters or, worse, continue thinking Y.
One other advantage of this is that teammates can look at something, and decide or act by themselves because the reason we did not do that isn't because Jugurtha said so, but it's because Jugurtha thought so based on X, Y, Z that are documented, and are not true anymore. I can't count the number of times a teammate ran with something because they clearly saw an opening, because the thought process was documented, and could act on their own...