I'm working on an old codebase which is... not perfect, in an environment which isn't either. It's not the worst codebase I've seen in my life, but there are still lots of issues: zero unit tests; methods with thousand+ lines of code; misunderstanding of basic object oriented principles; etc.
It hurts to maintain the code.
- Every time I have to debug a thousand lines of a badly written method with variables reused all over, I'm totally lost.
- Some modifications or refactoring I've done introduced bugs in other places of the application.
- Lacking any documentation, tests, or an observable architecture and combined with badly named methods, I feel that I fill up all of my available working memory. There is no room left over for all the other things I have to remember in order to understand the code I should modify.
- Constant interruptions at the workplace disturb me and slow me down.
- I can't remember more than two or three tasks at a time without a bug tracking system, and I forget all of them over the weekend.
My colleagues don't seem to have similar issues.
- They manage to debug badly written methods much faster than me.
- They introduce fewer bugs than I do when changing the codebase.
- They seem to remember very well all they need to in order to change the code, even when it requires reading thousands of lines of code in twenty different files.
- They don't appear to be disturbed by emails, ringing phones, people talking all around, and other people asking them questions.
- They don't want to use the bug tracking system that we already have since we use TFS. They prefer to just remember every task they should do.
Why does this happen? Is it a particular skill developers acquire when working with badly written code for a long time? Does my relative lack of experience with bad code contribute to these problems / feelings? Do I have issues with my memory?