Friday, January 11, 2013

Get Outta My Way!

You know what I really hate about software development process?

When the blasted parts of the process fail to work and make more work for developers!

Case in point - The Job has a number of scripts that are run when the product is near a final build for a release, that check for all the expected fixes being complete, all the process steps are done, etc.

So today I get the nasty email from the PM that I have some unfinished fixes.  I look, and I've done everything that I am supposed to do, all parts are present, but the scripts are not finding them.  And this was noted a week ago and nothing was done when I noted that part of it was clearly wrong (as in I showed the supposed missing parts by ID)

But the dysfunctional process favors PMs bothering developers instead of following through on responses.

I repeat the gathering of part IDs, and then have to re-save some things to trigger the scripts again.  Why they do not run automatically on the production build, I'll never know.



Thursday, January 03, 2013

The Horizon Effect

Today I got started on one of the more fun things in software development - removal of old code.  Not a refactoring of functionality, but outright removal.  It's been a while since I had the chance to do this.

It's cool, getting to excise code and make the codebase smaller and more efficient.  The feature unfortunately was not wrapped in a simple method or methods, but the functions and data are all well-named, so it's a simple search and destroy replace.

But I was musing that this was something that gets ignored by many shops - getting rid of old features that are unused.  Old hardware, obsoleted features, invalidated combinations, all of these lurk in many (most?) applications, waiting to spring on the unwary.  But I rarely see mention of this pruning in the literature - refactoring gets mentioned as a response to changing requirements, but the requirements-gathering always gets described from the viewpoint of a new project, not a mature product.

One of the hard parts is that it's often impossible to determine which features are no  longer valid, because the reasons for them in the first place are lost in the mists of time (or Bob, the original architect, retired 2 years ago, and is sipping Corona on the beach at Cozumel).  So I was thinking that it would be a cool feature of an advanced source code management system to tag a set of changes with an expiration/re-examination date, so that the developers would be reminded of the need to do this, and contain the explanation of the feature so that this later validity could be checked.


Tuesday, January 01, 2013

New Year Hopes, Plans, and Ideas

Well, it's now January 1st, and it's time for the obligatory New Year's post about resolutions, plans, and so on.

What, you thought I was going to do something different?

So here are my plans:

Professionally - improve my coding skills; work more on getting testing infrastructures built around my work code; start learning more about the other areas of The Job's new products; build something useful to the public in Python; learn more about VMs and use of the cloud.

Personally - sustain an exercise program for more than 2 months; work on my photography project; declutter the house (at least one item per day disposed of by trash, sale, recycling, or reuse); blog at least once a week; write some fiction every month.

Socially - well, let's just say I need to see how much time I have left after doing all of the other things.

I'll post later with the list of specific things of interest to technical types.


Tuesday, November 06, 2012

...Is An Onrushing Train

So in addition to the usual chaos this time of year, The Job decided to throw a curve.

Apparently, someone managed to completely ignore a feature that had been discussed several months ago, and suddenly realized that it was very close to the deadline.  So instead of owning up and saying "Well, we need to postpone the drop to get his feature in", they asked  me to crank out a solution.  Then they nattered away 4 days of a 10 day deadline on side issues.  And then I find that the interface I was to use is already implemented elsewhere, and this should have been noticed during the initial discussion!

And the owner of that subsystem is "too busy", so I get tapped to redo all my work in the new processes, in 3 days, instead of 10.

*And* all this is after getting a sub-par review.....

You can bet this is being noted for future reference in next year's review.



Monday, November 05, 2012

When Google Calls

Well, the Gods of Computing briefly smiled on me, and then got all frowny and stabby.... Google called and wanted to consider me for a position once more. I had to go through another phone interview, and after apparently failing that, got a second chance, which I then failed again. So the advice I have for folks interviewing with Google is: Don't implement the naive solution to the problem - that appears to be less-than-acceptable. Discuss the naive solution while you think of a more elegant solution, one that uses a suitable data structure

Monday, October 08, 2012

Missing the point of education

I wonder if the US Business Managers have seen this story about Indian college students outsourcing their senior projects; or as we call it here in the US, cheating.  Hell there is even a cottage industry providing these products, and the article mentions that the local costs have spiraled, so people are starting to provide the same products from cheaper areas.

But what I did not see in the article is even a hint of moral outrage or guilt about this - not from the students, not from the project providers, and not from the journalist who wrote the article.


Wednesday, September 12, 2012

Keeping My Chin Up

I realized two things today. First,  when I take work-related classes, I get in a weird stressy, bummed out mood; and second, why I get in that mood.

I get that mood because all the neat things I learn in these classes is basically unused.  I am trying to keep up with new tech, but The Job doesn't want to use new tech in the areas I work in.

It's kinda like window shopping for food.