2013 - Year In Review
Well, it's almost the end of the year and I want to recap some of what I have done and learned. Since I didn't have a blog at this time last year, I can't say that I did or didn't do what I said I was or wasn't going to do. So, I'll just go over a few highlights that come to mind quickly.
This year I have watched 32 hours of training videos on CBT Nuggets. Topics included SQL Server, ethical hacking, project management, and ASP.NET development. I have bought and/or read a few books, including Software Estimation: Demystifying the Black Art, Good to Great, and more. I have mastered (ok, started to tame!) using virtual machines to ease my development process. I deployed and now manage 2 VPS's from Digital Ocean (up from zero last year which is a div-by-zero error increase!). I started this blog and this post will put me at 22 posts since I started in the end of July.
The biggest project I worked on this year was developing a secure, centralized backup system to collect and rotate backups for roughly 30 different client web sites. That project gave me more learning opportunities than I ever could have hoped for. Some of them I just wished I had learned in different order... but such is life. I look forward to finishing that series of posts covering the various components of that system because the more I write about each area, the more I realize I didn't know yet!
Another project that should be ready for production in the next week or two is a Joomla! component that provides a front-end support form to provide direct integration into our Mantis bug tracker. (Oh, and Mantis was new this year too!) It uses the Mantis API to submit the ticket and generates a confirmation email to the user submitting the support ticket. Once that project is a little more mature I might make it available to others, we'll see how it goes for us first!
Learning From Timeline Issues
I have worked on dozens of projects in government, corporate, and contract environments over the past five years and I have finally learned a few things. Namely, there are two big reasons that are always beyond my control that cause timelines to fall apart. (Disclaimer: Opinion)
- Incomplete Requirements
- Slow Response Times
Incomplete requirements are just part of the job. It's impossible to think of everything up front, but when the requirements change, so does the amount of effort the project will take. Any time the requirements of a project change, all prior estimates become suspect and should be re-estimated. I even have a bit of personal research to back that up!
I spent 3 months tracking every minute of my time to specific tasks. When comparing amount of effort during the main development phase to amount of effort after we started user testing, I found that implementing something as simple as a new check box on a form takes 3-4 times longer to implement if it were omitted from the original specification. That project involved a complex form linked to a web service that tied to SQL Server, so changes involved editing the presentation layer, the web service, the underlying SQL schema and all related stored procedures and views.
Slow Response Times
It is very common that I, as the developer, don't know everything about the business unit or function I'm developing for and I need some more detailed knowledge before I can make the system work properly. Normally when I get to needing that level of detail, I am eating, breathing and sleeping that project and know every tiny little detail of what's going on. I know the naming conventions I'm using, the data structures, business logic, etc. I can normally get back up to speed on a project if it sits dormant for less than a week. If a week goes by, I can normally ease right back into the naming convention, but the data structures and business logic have started to fade. The longer time passes, the more of that I lose. And of course that means when I finally get the answer or feedback I was waiting on, I have to completely re-learn where I was at, and that takes.... more time.
So, reasons timelines slip and fall... let's recap...
- Incomplete Requirements: There' really more work to be done, and more work takes more time.
- Slow Response Times: Delays in communication cause delays in work.
I am getting married in late April and will be taking a nice, long honeymoon with my future wife; we have earned it! The past two years we have both worked very hard and probably overworked at least a little bit (gasp!). I hope to get at least one SQL Server certification next year, and possibly my CAPM as well, but that's a lower priority than SQL. Other than that, I will continue writing on here, learning, and take some time to enjoy life a bit.
Published December 28, 2013
Last Updated April 13, 2019