Categories
Technology

The Line-of-Sight Developer

I heard the term “Line-of-Sight” in reference to certain breeds of dogs, such as the Afghan.

It seems that these dogs have this instinctive urge to run towards the horizon, and if they get loose, they’ll keep running towards the horizon at full speed until their owners catch them (fat chance) or until they run out of steam.

My brother and his family have a Greyhound/Great Dane mix dog named Hillary that’s a line-of-sight dog. The problem is that she has the speed of a Greyhound and the size of a Great Dane — not a dog one takes for a walk without a great deal of trepidation.

These pooches just can’t help themselves: they see, they do.

Odd thing, though, is that I know of developers that are like line-of-sight dogs: they see, they do. The problem is that you can’t leash these folks up, at least not without breaking several laws of the land.

The Characteristics of a Line-of-Sight Developer

How do you recognize if you work with a Line-Of-Sight (LOS) developer, or are one yourself? Well, there are several warning signs to look for.

You receive an email from another team member that they have “improved” the performance of a key element in the application your team is working on, have checked in the change and is ready to move it into production. Unfortunately, none of the rest of your team knew that the developer was working on this key piece of code, much less what the change was, and how it will impact on the rest of the application. Congratulations, you’ve just identified a LOS developer.

During a team meeting, you discuss the possibility of making a change to the user interface of an application, but decide to wait and get additional information. The next thing you know, the change has been made. You track the change down to a specific developer who states “Well, I had some time so I thought I would go ahead and implement the change”. Yup, one of the classic characters of the LOS breed is the words “Well, I had some time …”.

In an environment where clients have direct access to the developers, they always approach the LOS developer with requests for changes. You see, it’s an established fact that Clients instinctively know which developer will make the requested change without question. This ability is part of the client’s built-in survival instinct.

The LOS developer can program better than anyone else — at least, that’s their own opinion. So, they’ll fix other team members code whether the code was broken or not, inefficient or not, up to specs or not. After all, it’s a tough job, but someone has to do it.

The LOS developer: they saw, they did.

Two Different LOS Breeds

There are actually two different breeds of LOS developers.

There is the “I’m inexperienced and very eager” LOS developer. I call this type of LOS developer the “WOWIC” (Watch Out World I’m Coming) developer.

The WOWIC LOS developer brings the unanticipated changes they make to you for praise and at that point, all you can do is tell them they’ve done a good job, and give them a stock option to chew on. After all, to beat them about the head with a project plan will only break their spirit — you have to approach their training more cautiously than that.

The second type of LOS developer is harder to work with but thankfully less common than the WOWIC LOS developer. The chief signs of this type of developer is their arrogance, so I call this breed the AAH (Arrogant A**H***) LOS Developer.

You can easily recognize the AAH LOS Developer — one of their chief hobbies is to go through their teammates’ code and change it to what they believe is better code. If the teammate disagrees with the change, the AAH LOS developer looks at them as if they were an amoeba that just started to sing the “Star-Spangled Banner”. No one disagrees with The Programmer.

Dangers of LOS

Anyone who has worked on a larger application knows how dangerous a LOS developer can be. What may seem to be a simple change in the code for one application module can have disastrous effects on the application as a whole. If the change is in shared code, the developer has a responsibility to inform others before making the change. Better yet, the change should be incorporated into a staged development rollout, to ensure appropriate testing.

Another danger of the LOS developer is to the morale of the team. If you have a developer, particularly an AAH LOS Developer, grabbing other people’s code and changing it without legitimate cause you’re going to have dissension in the group. This type of behavior is discourteous. This type of behavior is costly to the development effort. Really, this type of behavior is just plain rude.

To make changes daily or even weekly and just plunk the code in without a plan only disrupts the work of other developers. I’ve found that any language that supports class inheritance, such as Java or C++ is particularly susceptible to this type of “ad hoc” code changing.

Is there a cure for LOS?

As stated there are two breeds of LOS developers, so there are two cures.

Having a well-established change control system and good software development procedures in place are about all you need to train the WOWIC LOS developer. They’re eager to please so showing them that good programming practices and teamwork support are just as valuable as lines of code will get the point across, quickly.

How about the AAH LOS Developer? Well, sometimes all you have to do is tell the AAH LOS Developer that they’ve tromped all over the team’s code and to please not do so in the future. If they’re more arrogant than A**H*** this could work.

However, the best approach with the AAH LOS Developer is to again set procedures in practice that curb the more I, PROGRAMMER urges of the AAH LOS Developer. In other words, track what the person is working on, and keep them busy enough with their own assignments to leave other people’s work alone.

Oh, did I mention that you need to have good programming practices, change control, and well understand project plans in place? I did? Just wanted to make sure.

Categories
Technology

When part A doesn’t fit into Slot B

Recovered from the Wayback Machine.

To continue my work on ThreadNeedle, I needed to update my server’s Berkeley DB installation to take full advantage of the persistent features of the Redland RDF Application Framework. Since Berkeley DB is also used with our Movable Type installations, I felt it was only prudent to upgrade the weblogs on my server to using the MySql database system so they wouldn’t be impacted by any of my tinkering.

Burningbird and my other MT-based pages upgraded to MySql without a problem, but the conversion of Stavros’ weblog was less than successful, resulting in re-build errors and missing functionality (the Recent Conversations comments feature). According to Movable Type Ben, what most likely happened is that the version of MySql on my server can’t support the complex functionality used for this particular feature.

What to do, what to do. If I don’t upgrade MySql, Stavro’s weblog will either remain in its semi-broken state or he’ll have to back out his upgrade, and return to using Berkeley DB (leaving his weblog a bit vulnerable to my ThreadNeedle efforts, and that’s a lousy thing to do to my favorite Canuckian). But if I do upgrade MySql, I’ll most likely break other applications using the database system. As it is, I’ve already broken the Post Content prototype application, used to manage my moved and missing web pages, when I installed Redland and overwrote the Perl libraries used with it.

And to add the element of irony necessary for any good story, the Redland Framework isn’t working, either.

The software development process is an act of creativity. We have an idea, we conceive the final form, and we use the tools at hand to to bring this conception to life. The software that results from the development process is no less a thing of beauty than a dramatic photograph, a well written phrase, or a lively tune – for all of the software’s perceived useful rather than aesthetic nature.

Sometimes, though, there are impediments to creativity, and this is no less true with software development than it is for other forms of expression such as writing or photography. A case of part A not fitting into slot B. When this happens all that creative momentum hits the limitations and constraints and compresses in on itself until it resembles, at best, a misshapen accordian that plays only to a middle range of mediocrity.

Mark Pilgrim understands this, which is why he created the series, 30 days to a more accessible weblog, including the most recent entry Using horizontal rules. Ostensibly the tips from the series will help us create more accessible weblogs; in reality, Mark is showing us how to blast apart the limitations inherent with web pages and let the creativity of our weblogs flow unhindered.

(Most likely Mark would also tell me that ThreadNeedle’s current technical limitations would be eliminated if I just went with a Python solution.)

Jeff Ward understands this, which is why he put up a static page of thumbnail sketches of Invisible Light, his fascinating, disquieting photo essay based on images captured from various bars in Southern California. The thumbnails are the quick peeks, the fast throughs, the tip of the hat in compliance to those who travel from web site to web site in a race to see how many they can gulp at a time. And once the sop to those who live in a perpetual state of brain freeze is tindered, Jeff then creates a wonderous show for those viewers willing to spend the time to await the results, slow modem be damned.

Jonathon understands this when he spends hours investigating techniques that will allow his readers to resize the text in his weblog. What matters the time and effort expended on carefully crafting stories and tales, thoughts and opinions, if his reader can’t appreciate the effort because the text doesn’t render correctly in their browser, or is too small to read? Works of creativity aren’t complete until they’re consumed.

And I understand this. Which is why you all have to excuse me as I return to figuring out how to put part A into slot B with ThreadNeedle.

Anyone have a hammer I can use?

Categories
Technology

Tech hassles cont

I pinpointed the code that wasn’t executing in Movable Type and have forwarded same on to Ben. I know the issue is a data one, but hopefully this will provide enough information so that Ben can give me some direction as to how to incorporate categories back into this weblog. I also finally sent $20.00 to Ben and Mena for my use of MT – I wish I could do more, but I’m tapped.

(I’d give them an autographed copy of Essential Blogging in exchange for using MT, but since they co-authored it I’m assuming they’d rather have the bucks. Especially since they are also looking to move to a new server.)

BTW – I still love my Movable Type! Particularly since I could hack directly and easily into the nice, clean, highly readable Perl code.

Categories
Technology

Work in progress

I get my cable modem today, which means I can move my work on ThreadNeedle over to the server. Unfortunately, that’s the same server that serves this weblog as well as my other sites.

My way of saying stuff happens.

Progress reports, status, work in effort reported over at ThreadNeedle discussion.

Categories
Technology Weblogging

Zip-zip

Recovered from the Wayback Machine.

I like Movable Type’s trackback, but the problem with it is that now there’s two areas whereby the popularity of a posting is judged – the comment count AND the trackback count.

If a posting is a zip-zip, should it just quietly fold its tent, wonder off into the desert – the dog seeking an elegant death? Or is the posting so powerful, graceful, and eloquent that the readers are literally struck silent by the sheer beauty of it.

(In this crowd? Are you kidding? The only way to strike this crowd silent is to hit them with a 2 x 4.)

This same issue comes to mind with ThreadNeedle – the very fact that you register a posting with ThreadNeedle implies that you think the posting is strong enough to generate comment, but what happens when the weather’s nice, the readers are lazy, and you score zip. If you use Movable Type and allow comments, your score would then be:

zip-zip-zip

Geez, only the strongest and most confident personality could survive this with ego unscathed.

This is changing one of my overall views of how to incorporate ThreadNeedle into a weblog. What I did NOT want from ThreadNeedle was another measure of ‘popularity’, which I dislike.

Thanks to Ben and Mena for the cool new technology. Also thanks for opening my eyes to a potential new problem with ThreadNeedle.

(Should I track this? Huh? Huh? Should I? Should I? Go ahead, you know you want to…)