Monday, August 27, 2007

Am I this clueless about the business?

To give a little background, I work in the health care insurance industry. Grand.
So today we had an exec in from the home office to give a little pep talk or something. Or acknowledge that important people are, in fact, aware that we exist. I'm not entirely sure what the point of it was.
Amidst the flow of coached company lines, it was the unguarded moments that caught me.
One of the thingies that we develop lets people "choose" the benefits they "want." Apparently, customer satisfaction ("Customer Sat" for those of us in the biz) with their benefits is reasonably high enough with people who have gone through and used the thing.
Which leads to faux pas number one - after reinforcing that people are satisfied with our product, he joked about how unsatisfied employees are with our benefits. This is no joke - my benefits have gotten worse in every way I can think of since getting hired once upon a time. More expensive, less covered, more hassles.
But somehow, giving people more choices about their health care makes them happier about what they end up with. You'll hear it referred to as "consumerism," the great hope of the health care insurance industry and if you're like me, you'll somehow find yourself pining for the "bad old" days of HMOs. And they were bad, but the new high-deductible garbage foisted on us is worse. But more choices makes it better.
To prove this, faux pas number two. Guy's got a daughter headed off to college. She's an art major and they wanted to make sure she had a laptop for school. What sort of computer do you think they got her? You don't have to be Miss Cleo to guess "an Apple" and be right. But all the choices - how big a screen, how fast a processor, yadda yadda apparently made him happier about the choice.
All I could and can think is - "yeah, but they fooled you into fooling yourself into thinking there was a choice." The only choice was "Apple" - the rest of it was window dressing. They could have offered a single make and model and he'd have bought it because they deliver a product people love (because the people that work for Apple believe in the product that they deliver (because it's a good product that people love (ad absurdum))).
Furthermore, Apple might not be around to sell jack shit if it weren't for the iPod, which doesn't give you a whole lot in the way of those choices that we apparently demand. A bigger drive, different colors. Not much in the way of choices. When it was first released, it was dead in the water because it didn't have features that other MP3 players had. The fact that no one really wanted or needed or used these other features was irrelevant - the iPod just didn't have them. Suckers.
"People don't want to buy a quarter-inch drill. They want a quarter-inch hole!"
- Theodore Levitt
I don't buy the notion that people want to do a whole lot of choosing their health care benefits. If they're like me, all they want to know is that when shit happens, I'm not going bankrupt.
Four years ago (when we had insurance from An Insurance Company I Am Not Employed By), I had a migraine that lasted five days. I finally broke down and went to the hospital - they CAT scanned me, found an abnormality, had me back in in a few days for an MRI. Nothing wrong with it, but I should get it checked out regularly just to make sure.
I think I was out all of $10. I was happy with my insurance.
Since getting hit by the truck and getting deluged with mail, I have no such confidence in my health care. The little form letter I got after we got bought out letting me know that I just need to double-check with them before I got an MRI doesn't help matters in that confidence regard.
I see the same godawful tyranny of the amateur in financial planning - I suspect that folks in the industry there are able to trot out study after study proving that people are inexplicably (to me, at least) more satisfied with planning their own 401K. I hate it. Hate it. I don't know this mutual fund from that index fund. What do I know? That I want to retire some day (the sooner, the better) and be able to do it comfortably.
What do I want from health care? To know that if shit happens, I'm covered. I do not want to know in network, out of network, deductible, copay, blah blah blah. More information leaves me less satisfied.
I feel like we're being set to work building shadows. People are monstrously unsatisfied with their health care and a little novelty makes people momentarily happier about it (at least on a survey card) so more novelty will make them even more satisfied! And more information about it (one of the cornerstones of "consumerism" is bombarding people with information that's goddamned near impossible to parse) will make them happier!
I need that quarter inch hole. If there's any question at all about how I procure that quarter inch hole, if you make me work to figure out what drill suits my lifestyle, you run the very real risk of me finding out that someone else provides a better, faster, cheaper, stronger drill bit.
I'd like to be more Apple, ignoring what people say they like and giving people what they want and less chasing ghosts on customer satisfaction cards.

Monday, August 20, 2007

Management Jeopardy

"I'll take Unsane At Any Speed for $1000, Alex."

"This defies rational explanation and is a sure-fire hint that you're working at the wrong place. Yes, Dave."

"What is a four hour meeting that starts at 6 PM?"

I'm not smart enough to make this up. I'm pretty sure that meetings that long are in violation of the Geneva Convention to begin with, but having it start well after working hours end on top of that?

To clear up some mitigating factors that weren't...

  • We do not have any off-shore workers, so it's not a matter of having to figure out a way to meet with people halfway around the globe.
  • We are not a huge company.
    • I can't keep track given all the resignations and hirings, but we've got about 40 employees.
    • We are owned by a (much) bigger company.
    • We have one main point of contact with this bigger company (most of the time) who was involved in it.
  • Adding injury to injury, some of the people in the meeting had an 8 AM meeting earlier that day.
    • It wasn't a matter of showing up late in the day for a late meeting.
    • No time's being compensated for this. There was no half day at the end of that tunnel.

In as much of its defense as I can raise, I wasn't in this meeting and the people who were in it say that they really got stuff done. If I was in there, I'd be telling myself that to save my sanity too, so who knows.

Actually, there would be no need to save my sanity. Nobody's going to pay me the kind of money I'd expect to be paid for the insane brand of job where the very idea of a meeting from 6 PM to 10 PM isn't immediately laughed out of the building.

This is, easily, the worst solution for the "we have too many meetings and not enough hours in the day to get all the particulars together" problem that I've ever seen.

Friday, August 17, 2007

Sometimes Foresight is 20/20, Too

I keep trying to come up with really great, really kick-ass ideas for programs that I can sit down and knock out. I want to find that itch that I can conceivably scratch.
I obviously haven't had any.
Every now and then, someone I know will come to me with a "wouldn't it be great if..." idea that they've got, but there's two problems with them. OK, one problem. They're invariably not that great because if they were, I'd have jumped all over it because it felt like that great of an idea and I wouldn't be typing to an empty audience, I'd be dictating this in front of a sold-out crowd at Madison Square Garden because I paid for them to watch me sit here and dictate this tripe to my butler's butler after having built whatever that great idea was.
The second, obviously subjugate, problem there is that I haven't had any great software ideas (of my own or lent to me) that got my juices flowing. I haven't had much more than ideas for the sake of ideas.
Until one fateful day a few weeks ago. I'd gotten back from work and was out on a bike ride to clear my head and stretch my legs out. It was a nice enough late afternoon and climbing the hill, I started to think back to all the silly little programs I wrote when I was a young lad dabbling in BASIC and PASCAL. Terrible "RPG"s and the sort. Cut-rate Ultima Is, minus, well. Everything that would make them playable.
It suddenly became obvious - why don't I write a roguelike in .Net? Since then, I've been kicking around the idea and it's only gotten bigger and, well, dumber. As Google will tell you, the very idea of a roguelike in .Net is a dumb one to begin with. I haven't even started so I couldn't tell you why.
Compounding the shaky base I'd apparently be starting with, some truly awful thoughts have gone through my head.
"Hey, I could write a flexible MVC implementation so that it could be presented by either a web interface or a BBS door!"
Yes, another filthy childish love of mine is olde tyme BBSes and door games. I've tried to come up with a good idea for a door game to produce, but no dice there either.

"Hmm. Since it's online, I could make it multiplayer. I remember reading some design documents for Multihack; how will I handle surreal time? If there's two people on the same dungeon at the same time, how do I handle the dungeon-moves-when-you-say-so aspect of it? Can I fix this?"
Multihack was the multiplayer version of Nethack that never quite saw the light of day. If you've never played a roguelike, the game world doesn't advance until you make your move. You can take a second or a week to make that next move. This presents obvious problems when more than one person inhabits the same level and Player A wants to move NOW while Player B wants to take 10 or 20 minutes to decide whether to read a cursed scroll of levitation or enscribe Elbereth or whatever. Oh yeah, I went there.
"How do I persist the levels? Hmm. Oh, I know - this feels like a pretty relational data model that I'm working with. I'll just install SQL Server."
At that point, a bigger, louder voice in my head screamed "SQL Server for a fucking roguelike? What the shit are you thinking?" Thankfully, foresight finally reared its beautiful head.
If I may, a few words in my defense.
Day in, day out, I write database-backed web applications. I take detours to write "thick" WinForms apps here and there and then multithread them based off of need rather than just because I can (honest) so I've got a really solid comfort level when it comes to, well, ASP.Net up front, C# codebehinds and middleware and SQL Server backing it all.
That said, I recognize that it's more than OK to step out of your comfort zone from time to time. It wasn't comfortable when I took a step back and started to see that what I was trying to pass off as object-oriented code was, being generous, marginally better procedural code with some trappings of objects tacked on as an afterthought. I'd gotten comfortable writing that way as a student and hadn't progressed much since (and coworkers who'd been there before me and had more experience were writing the same).
At a certain point that felt logical to me, I stopped with the parameteritis and the basically stateless objects and started writing object-oriented code they way that I thought it should be written, trying to take care to think about what it was doing and how it would be used now (rather than building things in because you never know), but I think that I'm a better programmer and my software's better and easier to maintain because of it.
It wasn't comfortable when I got started and it was slow going at first, but I'm happy with where I've ended up.
Now that I find myself at the top of a mountain again, do I try to convince myself that I've climbed to the peak of the world or do I take a look around and see that there are other mountains that I should climb?
My class diagrams (which look every bit like a socially inept teenager scribbled them down) for my roguelike can sit in a pile on my desk for a while. A database for a roguelike feels so impossibly wrong that I can appreciate the fact that it's time for me to stretch a bit and tighten up my laces because I've got some climbing to do.

Sunday, August 5, 2007

Triathlons are hard.

I competed took part in my first-ever triathlon yesterday, the Top Notch Triathlon up in Franconia, NH.

It sounded so easy - 6.5 miles of biking (3.5 on paved roads, 3 on trails), followed by a half mile swim, then a 2.5 mile run/hike. I'm a fat lazy guy and I'm pretty sure that I could do that in my sleep.

And then I found out that there's a 1040 vertical foot rise in the cycling part. And 2280 more in the hike. (Thankfully, the swim was pretty level (har har)) I probably should have looked into that before I went out there.

I didn't really have much in the way of goals for the triathlon. You may not have known this about me if you skimmed above, but I'm fat and lazy and really all I did to prepare for this was ride my sweet new bike a lot. Unfortunately, that was about all the preparation I did for the race.

I took a look at the numbers (before I noticed the vertical climb advertised) and I wasn't even going to bother swimming in preparation because I'm fat and fat floats and I could swim all day when I was 10 years old. I wasn't going to run because I don't like to run all that much anymore. The little running I did didn't help, but I'm glad I got a few laps in swimming before I got out in the lake so I wasn't in for such a huge slow surprise.

The second-biggest surprise of the day was how poorly I did biking - I started at the back of the second pack and was passing suckers left and right on the road portion. I was keeping a pretty leisurely pace - I knew that it was only 6.5 miles, but I also knew that I didn't want to burn myself out cycling. The trail ride was a different story.

I've never ridden in packs off-road. I've ridden with two or three people, but mostly on fire roads or where we had the luxury of spacing out well enough to not interfere with one another, and with people at about the same skill level as me. The trails we were on were double-track in some parts, but mostly single-track with roots and rocks and muck on the other side for passing lanes (where there were any), which meant you had to work considerably harder to pass people. I was trying to conserve energy, so I didn't do a whole lot of passing.

Except I sort of had to, because there were people who were really slow and really unsteady out there. I was not prepared for people to be slowing down for every mid-sized rock, every root, every mud bank out there and had to dab a couple of times and fell once when someone abruptly braked and cut left across my front wheel for no good reason. It was tough on me because riding alone, I'm used to keeping up the cadence that I want to keep up and go the speed I like. Out here, I was constricted to keep up an awkward cadence and go slower than I would have liked - it wasn't until well into it (maybe a mile left) that the light bulb went on above my head and I realized "hey, maybe I should shift up to an easier gear to keep up the cadence I want even at this pretty crawling pace" and things got easier at that point.

Then on to the swimming! I knew I'd be slow because I'm in such awful shape that I can't even maintain a freestyle for more than a few hundred yards. Can I blame that one on the broken collarbone and ribs circa 16 months ago even though they don't hurt me? The water was 70 degrees and felt pretty damned nice to get into right after I got off my bike. I was going as slow as I expected to go, but I wasn't gassed by the time I got out of the water, so I figured I was doing pretty OK.

I'm not in as much pain as I look here, just squeegeeing my hair and trying to keep the water from getting in my eyes/contacts. OK, maybe I am as tired as I look. Thankfully, there are no 10 year old girls racing ahead of me in this picture.

I expected there to be some change station where I could get my other change of clothes on for the third leg but there wasn't, so I just toweled off a little, dried my feet and put on my socks, strapped on my camelbak, and started up the mountain in my bike shorts. For anyone that was stuck behind me, I'm so very sorry about that.

I'd run a whopping 10 miles in preparation for this, so I figured I'd run as far up the mountain as I could. Once I got a look at the first hill you take off up and its vertical incline, that thought went straight out the window.

The hike was, well. Kind of brutal. At parts it was sand and loose rocks, not a winning combination by any stretch of the imagination. Other parts it was ledge (exposed slabs of rock). All of it was steep, steep, steep. There were a few short legs where it flattened out or had a slight decline, but mostly it was uphill and then some. The early part of it wasn't that bad - I wasn't trying to sprint up there, so I slowed down a bit and chatted with a few people on the way up and that was alright.

By the time I'd made it to the first water station, I was wondering how much further it was. By the time I passed the second water station, I was worrying how much further it was because I was starting to get worried. There were other people stopping to take a break from time to time and I wanted to as well, but my legs were starting to tighten up pretty bad and I was worried that if I stopped, I'd cramp up and make my life a hell of a lot tougher.

In my head before the race, no sweat. I'll run as much as I can, hike the rest and sprint to the finish. There was no sprint to the finish. I grabbed a bottle of whatever bottled water they were handing out on the finish line (even though I still had a good 30 oz. of water in my camelbak) because my brain was fairly mush at that point. As in - me even dumber than usual which is hard to compute.

I am as tired and confused as I look in this picture. And then some.

The cramps were still creeping up on me, so I stood in the shade for a few minutes sipping my water and started to feel better, so we took the tram back down the mountain to go collect my bike and head back to the starting point so I could change out of my bike shorts and sweaty shirt and check my final time.

I scatterbrained the post-race tie-up activities multiple times, so it was multiple trips back there and eventually they had my time posted - 2 hours, 4 minutes. I finished 195th (198th? again, scatterbrained) out of, uh. I don't know how many people. My number was 318, so I'm employing my advanced mathematics training and figure that I finished in the top 2/3rds of the race which is a gentleman's pass any way you slice it. I remember that I was 178th in the biking and 20th out of 22 in my age division (WHAT ABOUT BMI DIVISION, BIGOTS?), neither of which I'm really proud of. The biking especially I'd like to make excuses for - I didn't know how hard I could push, the cadence thing throwing me for a loop, yadda yadda, but whatever. I wasn't competing, it just seemed like something fun to do. And it was.

Except for that goddamned hike.

Now that I've swam a lake and climbed a mountain, picking up functional programming should be a piece of cake, amiritefolks?