Q: Biggest programming mistakes?
All my big mistakes are the same, and I remember them. I keep working when I’m too tired to keep working: So, I wrote more functionality than I needed to; I forget that I wrote something and wrote it again; I forget that I wrote it over there and wrote it here. I forgot that I did it that way and so did it this way, and now I have to fix one or the other. I made only one architectural mistake with a new product because I rushed with it. The rest are all the same. Tired = stupid.
I keep lots of notes, I plan my work, I use diagrams to design it. I usually do databases for rules, then services, then ui designs; Then the class architecture. I pseudocode the work, I write code for readability first; I document as I go; I (mostly) write test then code, the reason I’m slower I think I should be is that I test more than I should, especially UI functionality, and so I revise too much. I refactor a lot. and sometimes I shouldn’t. I should focus on functionality coverage so that I have a better understanding of how different services interact in practice.
Most recent mistakes that sit with me is the message bag in Oversing, where I’d replaced one technique with another and then forgot I’d done so until … oops. The other is writing one set of panels one week using one method of data propagation, and coming back the next week and writing another set of panels with a slightly different method of data propagation, when I should have used a different method of data propagation.
My general strategy is to make it work, make it work together, make it durable, then make it elegant.
I stopped writing code myself because there are people who are faster and better and my core strength is user interface design, business rules, and data structures, and not wiring everything together. And the reason is that with all the visual cues I do better than I do in code editors without them. ie: as I usually complain my weakness is short term memory. I remember almost everything. but that’s not the same as working memory.
But in general, tired = stupid.
Don’t write code tired.
Don’t send emails tired (or angry)