uwMike.com

I'm in Waterloo at the moment, and next available to work in September 2008.

Archive for March, 2005

The Trouble With Feature-Creep

March 29th, 2005 0

For my current co-op job, I was asked in the interview this question:

Do you find feature-creep or bug-hunting to be the more time-consuming part of software development?

At the time, I said feature-creep. Each added feature exposes numerous other missing features. Then the missing features become bugs until they’re implemented. So the new feature remains unusable until the supporting features are all implemented.

This is true with any software, but I find it more of a problem on the web.

Listings and Categories

Say that there’s a number of hierarchical categories, and a pile of photographs, each of which belongs to one of the categories. This could be stored as a filesystem, or in two database tables.

Say that you want to add the ability to ‘feature’ a photo inside it’s category… but you may also want to feature it in the parent category also, possibly right up to the root directory.

Adding the ability to feature a photo requires the ability to unfeature it, removing the database record. But you can’t just remove it without a prompt screen. On the prompt screen, there should really be a query that fetches the name of the entry and the name of the category for confirmation. Then on the public side, the featured photos need to show up at the top of the categories that they’re supposed to be featured in, etc.

This is all one big ‘feature’, but unless it’s completely implemented all at once, any missing part is a bug. As soon as it’s half-coded, more things reveal themselves as bugs so long as they’re un-implemented.

Partial Rollout

One of the beauties of a web-app is the incremental rollout that it allows. If a bug is discovered, it can be corrected without everyone having to go and re-download everything.

The trouble with a web-app is the request-response nature of form-based interaction. There’s folks working on that, but the primary mechanism is still as it’s always been. This breaks up code. You’ve got a display case, a response case, sanitization, plus some mechanism for grokking errors. Not only that, but chances are, you’re trying to cover add, edit, and error all in the same block so as to not repeat code.

It’s rather overwhelming. And if you miss any piece of it, you’ve got a bug.

This stuff is a whole lot easier in Windows, even if you don’t cheat.

With PHP, there’s tools out there, but any time something shows up that the abstracted tool can’t account for, you’re back at square one.

Personal Apps

The time this is the worst is with the programs programmers write for themselves — the throwaway programs. Those often turn into bigger and better things than they were originally meant to be, and suddenly there’s a dozen loose ends that need tying up.

My dad mentioned this about a program he’s been working on for the Church, and I notice it all the time on this site. For example, I have a mechanism for submitting the quick news links on the left side of the homepage, but there’s no way for me to edit them. I could spend an hour adding this feature that no one will see, or I could instead play with something that would show up publicside, such as creating an archive screen for that content so that links other than the top-ten are still available.

It takes only a few additional seconds to log into phpMyAdmin and just edit the records manually when I spell something wrong or mis-form a link. So it will continue to stay unfixed. If it was for a client, I’d fix it. But as a hobby project, I’d rather explore the new areas…

So is it feature-creep or bug-hunting that’s worse? They’re really both the same thing. It’s just that the prospect of feature-creep can sometimes be enough to make new coding a rather intimidating process.

Mike

Teething

March 22nd, 2005 0

I’ve developed the utmost sympathy for babies who cry at night from the pain of their new teeth cracking through the gums.

Like everyone’s, my wisdom teeth are enormous chunks of bone that show up late for the mouth-party. There’s also the distinct probability that they are appearing in the wrong position and/or orientation.

Feeling around ‘back there’, I can tell that on my lower-right tooth, one of the four corners, turrets if you will (my sincerest apologies to oral professionals), has broken through. The other three hover directly beneath a thin layer of gum, stretched taut, and raw to the touch.

If I could leave them alone, I’m convinced that they’d hurt less than they do now. But the activity of computer programming, which I engage in all day long and most evenings, requires a fair amount of intellectual flexing and cogitation. Flexing the Brain Muscle means nervous activity. I explain that by saying that an inconsequential distraction such as eating carrot sticks or rubbing gums with the tongue protects my concentration from being shattered at its most fragile moments.

In short, I’m facing the probability of having to get my wisdom teeth extracted.

I’d be hearing ominous music, but I’m listening instead to Terry S. Taylor’s delightful Imaginarium — Songs From The Neverhood.

Mike

A Better PDEng

March 17th, 2005 7

A rumour has been floating around that there’s talk of scaling back or even canning PDEng due to the number of complaints about it. I can’t comment on the validity of this, but it made me consider what I meant when I said that “I don’t object to education of this type.”

It also raised an interesting question… what would a better PDEng look like? Beyond knee-jerk “scrap this” and “scrap that” talk, what sort of program would actually accomplish the goal of increasing student professionalism in the workplace?

Storytelling Is The Right Approach

Previously, I pointed to Eric’s Starlog as an example of one of the more ludicrous aspects of the PDEng programme. However, thinking of an improved PDEng, storytelling is really the correct way to go about discussing misbehaviour and the poor decisions that create a less professional worker.

But rather than a rushed 120-word journal from each fictitious student, how about 1200-1500 word chapters which involve all four characters? The plot threads could interleave as necessary, focussing on the different personalities as appropriate. Rather than forcing the story to fit the week’s theme, allow the story to emphasize its characters and build supplemental material based on the scenarios of each chapter. (Shakespeare wrote Hamlet before the study guides…)

Creating A Story

Is telling a good yarn hard? Yes. And writing it by committee is the worst possible approach. Advertise in the Languages faculty for a student who wants to make some sweet cash writing a pulp serial for the Engineers. Have the first hundred in the door submit a portfolio and an ‘example chapter’ of the narrative they envision. Pick the best one, and give them full artistic license.

A longer, more thoughtful piece would allow for very specific, complex dilemmas to arise, where multiple persons are at fault, and the solution is more than just ’saying sorry and promising not to do it again.’

Would students ever face the exact situations presented? Probably not. But general wisdom is gained through specific experiences — even those experienced only through literature. And unless my understanding of PDEng’s goals is gravely off-base, it’s about training us to be wiser and make better judgements, not about instilling random-specific tidbits of how-to knowledge.

Style

It doesn’t have to be a Clancy. In fact, writing that pretentious would do more harm than good. I’d honestly aim for more of a Korman-Sachar style.

Deliver it as a plaintext email or as an attached PDF. Don’t make me log in and click through four layers of navigation just to see the most current content.

Comprehension Questions

It shocks me when I surf Amazon.com to check out the user-reviews on books I loved as a kid. Especially when the books were crammed down their throats by over-zealous elementary-school teachers. Of The Golden Goblet, one person reports, “the golden goblet i s very boring. i was forced to read it in sixth grade. i think i might of even fell asleep reading it.” Of Watership Down, another says, “It was way to boring for my liking. As a junior high school student this book was assigned to me.”

Saddening. What does this mean for my hypothetical vision of PDEng? It means that comprehension questions are few and far between. If the story is exciting and interesting, they wouldn’t even be necessary at all! Just deliver each segment right to my mailbox, and I’ll read it at my leisure during the week. At the end of the term, assign some kind of creative response, such as creating a fanfic about one of the characters meeting celebrity or something… if any of them are good, seek permission and then roll them into the future story.

Support

One complaint that came up on the forum a lot at the beginning was with regard to the UI-nightmare called PeopleSoft, which powers the whole thing (and, incidentally, Jobmine, QUEST, and presumably other administration tools on campus). Correction: It’s been brought to my attention that while PeopleSoft does power QUEST and Jobmine, the UW-ACE system is powered by the ANGEL system from Angel Learning.

Under a purely story-driven curriculum, the content-evaluation model that PeopleSoft provides is no longer necessary. A simple bulletin board, wiki, or even private blog could provide a way for mentors to publish answers to specific questions that may arise from students. No need to bury the interactive part of the system four or five clicks away from login.

The Future Is Unwritten

The current implementation of PDEng was created under the guidance of an impressive steering committee. Who am I? I’m nobody. I’m just a student. But regardless of what the plans are for PDEng, perhaps some of these thoughts will enter percolation.

And I’d be thrilled to hear from you. There’s a form below for public comments, and my email is on the About page.

Mike

Sickness

March 16th, 2005 0

I don’t take sick days.

Anyone who knew me in high-school will tell you this. I probably spread more disease by coming to class clutching my cough syrop and Kleenex than everyone else combined. Once or twice, I got really, really sick, like, unconcious… but if I was mobile, I was at school.

Rest is an important part of illness recovery. But rest doesn’t have to mean drooling on a pillow all day long and breathing stale bedroom air. For me, it means hitting the sack early and getting nine hours of sleep instead of seven.

Psychologically, I feel more in control if I’m still flexing my brain and being useful even away from the office. Besides, the projects I’m working on are interesting and captivating.

Having a cough doesn’t prevent fingers from typing. If I laid in bed, I’d think about the algorithms I’d otherwise be coding. So I might as well just be doing it.

Mike

A Zombie High-School Story

March 6th, 2005 0

A eighteen-year-old in Kentucky has been jailed for writing a story about a high-school over-run by zombies. Says he,

It’s a fake story. I made it up. I’ve been working on one of my short stories, (and) the short story they found was about zombies. Yes, it did say a high school. It was about a high school over ran [sic] by zombies … It didn’t mention nobody who lives in Clark County, didn’t mention [George Rogers Clark High School], didn’t mention no principal or cops, nothing. Half the people at high school know me. They know I’m not that stupid, that crazy.

Obviously, I’m not informed enough to make a proper judgement, since I’m missing a key piece of evidence here — the story itself. Nevertheless, taking this all at face value, there’s a couple important things to consider.

It Was An Act Of Creativity

It would have perfectly valid, under this jurisdiction, for him to consume zombie-themed entertainment in the form of movies. or video games, neither of which are as intellectually stimulating as writing a short story.

With the political power that the gaming and movie industries represent, these things will never disappear. And neither should they; that’s a basic free-speech/free-expression issue. But to attack some kid over it seems rather low.

He Seems Pretty Normal

Perhaps the story was hideous. Maybe it was shocking to the point of being grotesque, with a complete absence of redeeming moral qualities. After all, his grandparents turned it in to the authorities. But were these shocking things that ended up in the story really part of a psychopathic nature that was leading to the next Columbine? What if he just gleaned them from the aforementioned movies and games?

Teenages Do And Say Dumb Things

And I’ll be the first to step up and admit it. It sounds like he didn’t even intend these writings to have ever left his journal. Having a private journal is helpful, because later on it can be a humbling influence. (”Wow, I felt so justified then, just like now. But it turned out then that I was just being a petulant child.”)

But even if he did intend to publish the story, and assuming it was somehow improper to the point that it needed additional correction, I’m not sure jailing him is the correct way to deal with it. Yeah, maybe they could get a shrink or whatever to check him over, if they’re really worried, but the thought of being jailed for mere words on paper is a scary thought. Especially when you’re just eighteen.

I Can Only Partly Empathise…

… Because I don’t really get the whole zombie thing, nor really the larger genre of horror. It’s just not something that I enjoy as entertainment. But if Mr. Poole is using it as material to flex the creative muscle, that’s something to be praised, not arrested over.

Mike

© 2004-2008, Mike Purvis, some rights reserved. I'm running Wordpress, and I have an RSS feed.