Friday, March 29, 2013

Are You Experienced?

I like working with people who are smart, funny and don't come to the same conclusions I do.  I interviewed a guy a few years ago, we were so hopelessly in synch, we finished each other's sentences.  Creepy.  I passed on him, took somebody more junior.  Smart, liked her energy.  Fresh.  I know what I think, I didn't need an echo.

Of course, I want the people who disagree with me to bring their 'A' game.  Challenge me.  Keep me on my toes.  Here are some arguments that are weak:
  • I have a lot of experience.  Yes, sure.  So do I.  And as time continues it's inevitable march, it's a pretty safe bet I have more experience than you do.  A lot more.  So if "experience" is an actual argument, odds are I just flat out win.  Do better - what was the experience?  What did you learn?  Tell me what you know.
  • We did this at my last place and it didn't work.  Seriously?  Maybe it was a good idea and you just did it wrong.  Think about why it failed and ask if the same conditions apply here and talk about that.
  • Our boss agrees with me.  Granted, that does improve your odds of winning!  But it doesn't actually make your point of view correct.  Playing the boss card or waving your title around may carry the day but winning isn't the point, being right is.
Disagree, but don't be dumb about it.

Theory vs. Practice: Data Stored Must Be Useable

I heard there's a move to drop a table from a database I designed.  That's fine, I'm long gone and needs change, but thinking about why makes a convenient springboard for a "Theory vs. Practice" post.

The table in question is hard to love: most of the data is otherwise derivable and the data that isn't probably should be elsewhere.  There's also a couple of poor design choices, but I suspect the real reason the table is in the cross hairs is standard relational practice says the table shouldn't exist.  Pure speculation, but let's go with that.  Ironically, the table not only exists, it is key to day to day operational support.

The initial schema drafts didn't include this table.  I did the thing you do, gathered up all the data points, worked out the relations.  A couple of surprises, but mostly "people" had zero to many "addresses", etc.  This phase of the design is all about minimizing redundancy and efficient storage, efficient inserts. The easy part and when complete, the place where most people stop.  But

there's no reason to put data into a database unless you're going to get it back out again

and, astonishingly, few people think of that.  They don't do the next step which is to figure out how data is going to be used on a daily basis, what kinds of questions are going to be asked.

This can be hard, because you have to anticipate what people are going to ask before they ask it, though in this case it was pretty straightforward.  The basic operational questions were fairly obvious (though the people who would eventually ask the questions didn't find them obvious at first).  The problem was this.  Given the design I had, I could certainly answer the questions, but not without a pickup truck full of SQL that would be hard to write and probably wouldn't perform very well.

The answer was this questionable table.  Data creation added no friction.  Data update required some attention but was actually a lot simpler than the design without and vastly easier to comprehend as well.  And most importantly, those operational questions I was expecting to see asked a zillion times a day became incredibly simple and inexpensive to answer.  Everybody's happy except for somebody tutting over dubious relational design.

Practice trumps theory.  A pretty ERD isn't as important as timely delivery of data to the people who need it.


Thursday, March 14, 2013

Blogging About Yahoo! Telecommute Commotion From My Couch

Yahoo! recently announced that they were going to eliminate telecommuting and everyone went nuts.  I'm with them; in practice this won't get Yahoo! anything tangible.  But it has accomplished one thing that may, in fact, be incredibly important.

We've talked about Yahoo! more in the last couple of weeks than we have in the last 10 years.

Yahoo! leads in no category.  Their original reason for existence, web taxonomies, is dead and buried.  They make money, but they lead nothing.  They're not going away, but they lead nothing.

A lot of ink has been spilled about how dumb and a little ink has been spilled about how wise the move is but the most important thing is that it got everybody's attention.  I used to have a manager who talked about instilling a "sense of urgency" in a team which had drifted.  This looks like what's happening at Yahoo! - applying a shock to a patient which may not be dead, may not be dying, but is certainly moribund if not comatose.  Another re-face of the home page is not what they need, a rallying cry, a fresh direction, a sense of excitement is.

So don't write the ban off as a completely dumb idea yet.  If a couple of months pass and Yahoo! isn't barreling ahead in some new and exciting direction, yes, it's a failure because a simplistic, blinkered managerial edict isn't enough, isn't by itself actual leadership.  But let's see if the lights go back on, if the spark re-ignites, if the Silicon Valley electricity re-roots.  Yahoo! has everybody's attention.  Let's see if they do something with it.

Weep for Google Reader

Ok, maybe not weep.

Google announces that Google Reader will die and I'm ambivalent.  On the one hand, it lets me skim.  I can subscribe to a zillion different feeds, prioritize them, group them and then bang through them extremely quickly.  I am bizarrely though superficially knowledgable about a great many subjects based on scanning headlines.  And I can group some things that I always read together and bang through them quickly without having to visit a dozen sites to see if the content has been updated.  Very convenient!  A great time killer too, if i have a few minutes between things, I can fire up GR, see what's going down out there in the world and then get back to business.

Recently, I've slipped back into being retired or on break or between projects or whatever this turns out to be and GR has become a little overused.  It's no longer the thing that slips between, it's the thing I kill an hour with each evening.  And I'm not sure that's the best use of my time.  Sure, I know there's a new Pope before you do, I know when the latest upgrade to some obscure DBMS hits the web, I have my finger on the pulse of all sorts of nerdy things I'd never have time to follow any other way, on the other hand, maybe that's just a giant time suck.  Maybe I don't need all that.

I'm going to be doing some traveling and I've recently been thinking that I'm not going to want to keep up on all this noise while I'm roaming the world because, hey, I'm roaming the world.  My daily dose of Dilbert may not be that high on the critical list.  So I've been shuffling things into folders in a way that makes it easy to mark giant swatches of things "read" so I can just barrel through in a few minutes and get back to touristing.

Then Google says they're going to just kill the thing off and I think maybe this is the time to cut some cords even more drastically.  Sure, that means I won't know some stuff, but that's not the end of the world.  I've been looking at alternative readers and they're all a bit noisy and eager to be attractive.  I don't want attractive - this is about cramming, not lingering lovingly.  Some commentators have said that RSS is dead anyway, long live Twitter, but that doesn't work for me.  The signal to noise ratio in Twitter is pretty bad.  Facebook doesn't work, the stuff I want isn't there and if it was there's no way to channel it in a controllable way, so Facebook will remain the place I go infrequently to see what kind of donut this friend or that had on a given morning.  I'm sure Google wants me to think "Google Plus" and I would because that's a pretty nice interface but, bad news, Google, it's a ghost town and not really what I want anyway.  Maybe Google wants me to think "Google Currents", but it's pretty rather than efficient, doesn't have stuff and I want low friction.  I'm giving Feedly a shot, promising but again with the pretty so I have my doubts.

I suppose I could whip up something of my own, but maybe I should just let this be a time when my life gets a little less noisy.  Didn't really need to know who the new Pope was anyway.