You can’t remember every detail, so stop trying
There are more details involved in writing an application that anyone can remember. You can’t hope to retain everything you’re told: it’s easy to slip and forget something important.
What can you do so you don’t feel overwhelmed when you’re sitting down alone at your computer? You don’t want to ask your clients or colleagues for help too often since they have their own tasks, and they’re not always available to answer. If you’re working on an existing feature you can always get an idea by looking at the code, but knowing what was done won’t help you figure out why it was done. Besides, if you’re working on a brand-new feature, you won’t have any code base to guide you.
What can you do in the future so you don’t put yourself in this situation again? You should take copious notes about the project when you get new information, using a pen and paper. Some people have the impression that they’re rude if they’re taking note instead of staring at the person who’s talking. You must stop worrying about this: it’s a lot more annoying to make people repeat because you didn’t bother to take a few seconds to jolt something down.
When you’re back at your desk and you start doubting your memory, you can pull your notes and validate if you were right. Seeing your notes will help you remember better what was discussed, even if your writing and diagrams are crappy. Taking notes on a laptop is not the same thing as writing on paper: the action of writing down what you wish to retain will help you, and chances are that you won’t even need your notes.
But, didn’t the Agile Manifesto say that any form of documentation was useless and evil? Can’t we just improve iteratively? It says that unnecessary or outdated documentation should be avoided, not that you should give up on writing things down. You can’t keep all this information in your head and hope to remember everything over the course of a large project. Having to remake a feature that took a few days or weeks to code just because you didn’t make sure to remember the information you received is an expensive mistake.
You will never be perfect: you will always have questions, and you’ll most likely need clarification about a few key points even if you listened perfectly. When you get to this point, you’ll now be ready to ask those questions without feeling dumb that you missed something obvious.
Abhishek Luv
May 16, 2016 @ 07:37
This is so damn true. Taking notes on paper is always better.
Pavel
May 16, 2016 @ 11:05
Nice advice, but I quickly found my notes to evolve into a mess of todos, features, bugs, meetings conspects and so on where I can not easily navigate or search. Are there any good systems to structure such writings?
Cindy Potvin
May 22, 2016 @ 09:19
I don’t have just one system, it depends on the kind of notes: bugs will end up in the bug tracking system, while meeting notes will end up with the other documentation for the feature. Some other notes, like TODO, will be destroyed once they’re completed and have outlived their usefulness.
Still, if you want an example of a system to manage incoming information, you can take a look at the popular GTD methodology (http://gettingthingsdone.com/). Some parts of it are probably too complex for your needs, but it’s a good starting point. Some people also use Evernote to structure those writings, but you have to create your own systems since it’s not structured by itself.
Weekly Links #14 | Useful Links For Developers
May 21, 2016 @ 13:16
[…] You can’t remember every detail, so stop trying […]
Alan
May 24, 2016 @ 00:24
There is another useful place to put your notes. In a work ticket. Most places use some kind of ticketing system like Jira. I’ve seen many tickets that have a one sentence description and that’s it. But occasionally there are tickets that have notes, screenshots, code fragments, formulas, URLs and more. They are a pleasure when you have to go back and debug something.
Of course as bad as it can be to take hand written notes while someone is talking it is socially much worse (seemingly) to be typing on a laptop or tablet. But it can be great if you don’t annoy people to much.