Sunday, September 20, 2009

Sunday Morning Sing-a-Long VII: Triphoppin'

As I mentioned in the Twittersphere last night, the local good radio station played the Nightmares on Wax song "70s 80s":

I can't get that guitar loop out of my head.

The week was busy. It was stressful, but in the end it was all for the good. Last week, I blogged about the Big Switchover in the code base at work. This week is the week that code made its way into production.

A release candidate was cut and put on the test environment on Tuesday. I felt bad for the systems engineer and user interface engineer who had to code review and test the changes because there was a lot of code going into this release. Between my ex-boss and I, there was something on the order of 1,600 new lines of code. To aid them in their efforts, I wrote up a detailed test plan of things for them to do to flex different parts of the code.

Late in the afternoon, there was a false alarm bug that was really system configuration issue. The new code relies on asynchronous execution of tasks, and the queue that was dispatching the requests was not up and running.

After I got home that evening, I found a bug in my own code for something I had not taken into account in the testing. I worked with the system engineer to get the fix merged into the release candidate.

The push to production on Wednesday morning had issues.

It turned out that code I had written for doing synchronous population of a data store had not been tested for multiple sites. I had a stray line of code that was breaking the execution of a loop, so we had to fix that.

Then once the code went live, we started getting alerts about fatal errors. A fatal error happens when a script cannot execute to completion. It was being caused by some validation code that I had written as part of this release. I was checking the value of a variable using the wrong name.

Within an hour, I had coded the fix, got the system engineer to test it, and then got it pushed into production. Lucky for us, the bug was exercised only when an "about us" type of page was requested. According to the logs, most of the hits were being generated by search engine crawlers rather than real humans.

On Thursday, another issue was detected. A database query had been written without adequate entity constraints, so there were situations where if you requested a post by its permalink URL, and there was another post in the database with an identical title, you would wind up with another person's content. Fortunately, it was a two-line fix, and the issue was resolved within a couple hours of detection.

I've also been busy with some external development stuff. We have another company who wishes to integrate with our application. Since we have ways for third parties to use our services programmatically, this is pretty easy to do.

In fact, we have one company who did just this thing this past summer, and their development team was really happy with the design. This other company isn't quite as web services savvy, so educating them on ways to get what they want done quickly has been a challenge.

To make their work much easier, I will need to make one change to our application that gives them much more flexibility. I took the lead on implementing that over the weekend. It won't be a breaking change, thankfully, but it will need to be vetted before we push it into production, so I will be using our group code review time to put it under peer scrutiny.

We also made plans this week for the development week the next couple of weeks. We will be adding a user interface for adding accounts that doesn't require a call to our support team. When I announced this at our company mini-meeting on Friday, I got cheers from the support team, which made me feel good.

To finish off the week, the President and CEO took my team and I to lunch at a brew pub downtown. It was one of my favorite restaurants, and luckily it has enough breadth to keep the diversity of my teams tastes happy. One is a vegetarian, another is a teetotaler, and another is on a high protein diet.

I think the meeting was good because we got the ear of upper management, and they got to know us better. We have a good reputation within our company because we consistently get stuff done, usually on time or pretty close. The CEO said that at the last startup he was at, software releases involved nail biting and stress. He said he doesn't worry about that stuff with us. I told him, "We worry, so you don't have to."

Despite having one less team member, I feel good about where we are headed. I gave a new job description to the President on Friday, and it's a major rewrite of what my ex-boss used. After 1 3/4 years on this job, I've got a good sense of what the good hires and not-so-great hires are like, and I've got a better sense of the soft criteria that discerns the two. The description takes that into account.

With the quarter coming to a close, I will be sitting down with my team members to set goals for their own personal development for the next quarter. While it is important for us to get the releases done on time, I know it's also important for our team to grow in our expertise and skill.

On the home front, STBX started one of her part-time jobs last week. She has to be at the workplace at 5 pm on Wednesdays, so I have to take off work early. That's not such a big deal because I go in early on Wednesdays because of releases. Since my older daughter has to be in bed earlier these days, that gives me more time to spend with the kids.

My older got her first progress report this week, and she got good marks. She's really enjoying school, and it's so neat to see her grow in her abilities. The younger daughter is in preschool three days of the week now. The other part-time job that STBX has is working as a substitute in the school cafeteria. Since that has the possibility of conflicting with getting the younger daughter to and from school, she has arranged for the preschool teacher's mom to be a sitter. The rate isn't too awful, and I'm picking up 75 % of the tab for that.

In a few hours, I'll be picking up the girls to take them up to the north burbs. My mom is house sitting for my brother, so she's invited us up there for a cookout. That's about all that's news here.
blog comments powered by Disqus