This morning, I put the finishing touches on a script I’ve been working on for the past couple of weeks. This was the second large project I’ve worked on this year, and it was far deeper in scope than the first project. Given its immensity (perceived or otherwise), I’ve noted several areas where I can improve:
Whether it is during the development phase or during the QA phase, I need to be better about working in a systematic manner. So far, my methods are more haphazard than I care to admit (“Oh, I need to code this! Wait…let me write this section first! Crap…I don’t have this function available.”) This scatterbrained method of writing code is inefficient and makes it hard to work in a logical, linear way.
So, this is related to the need to plan, as discussed above. Above all, my issues stem from laziness, but we all know that, in the end, there aren’t shortcuts when you want to do well. I used to write test plans, and they were super helpful. They don’t have to be extremely detailed, but I do work best when I give some thought to how I am going to test something.
In addition to test plans, I need to remember that there is no substitute for using the debugger, even if the way the script is written makes testing cumbersome. I can’t just read through something and find what’s wrong that way, especially when I’m the person behind the code.
I understand there’s no way to get around providing estimates regarding how much time things will take, but goodness, I was off by about 60 hours for this project. Granted, I don’t think anyone else realized the enormity of this task, but above all, I just need to realize that I can’t always make a solid promise. This is annoying, I realize, but better to say admit ignorance than to apologize (repeatedly) for missing deadlines.