"Doubt is uncomfortable, certainty is ridiculous." - Voiltaire

RDBMS isn’t going anywhere soon.

Greg Young wrote an opinion piece that partially blames incorrect or failing systems on development teams that don’t spent enough effort thinking how they will persist data. Your not carefully deliberating whether or not to throw out all your rdbms database tooling, training, and experience? Shame on you says Greg.

Why are you not just using an Object Database or a Document Database?

Every choice outside of traditional RDMS databases completely lack:

  • Huge vertical of management studio like tooling available for things like MySql or Sql Server
  • Scores of developer experience and talent.
  • Proven data safety and backup techniques.
  • Proven scalability and optimization techniques.
  • Functional ORM libraries for data access and retrieval for almost any language or rdbms combo.

It pains me to no end that developers more often than not make the single largest architectural choice on their system without applying any rigor to the decision

While reading his opinion piece I get images of NASA contemplating sending the next space shuttle up in a slingshot or trebuechet.  Of course I don’t site down and have a chat with myself or the team I’m working with about whether a key/value store is worth it.   There would have to be a killer reason or feature to use a storage system outside of a RDBMS or some type of insurmountable scaling need that only a key/value store could solve.

The reason developers don’t discuss these things is because its not even a discussion worth having.

I spent my weekends throwing away my RDMBS snuggle blanky comfort zone to check out things like CouchDb and other key/value stores.  But when I have client data that can’t be lost or productivity goals that need to be met I can’t even consider using a barely proven technology.

Rain Dancers and Bone Casters – The Management Myth

Recently I’ve been confronted with software development strategies like SCRUM and Waterfall.  So far I’ve observed that Waterfall didn’t work because people didn’t have common sense ( you mean customer feedback is important? ) and that SCRUM and Agile are most beloved by highly paid consultants and people that don’t want to bother thinking about what they want to build.

I can’t decide if they are “wrong” per say but maybe software development is more akin to a creative art.  Adding metrics and forecasts to try and make sense out of all the moving pieces is like trying to plot out the development cycle of the Mona Lisa.  To each his own I think.  To me anyway sometimes software development seems like a bunch of people falling down stairs at the same time;  you’ll get to the end eventually but have no idea in what configuration or when.

This passage from the Myth of Management struck a chord within me and I wanted to share it with some friends so here it is.  I think it speaks to the fact that we there is so much software project management “mastery” in the world according to mbas, six sigma, scrum, and other weekend classes yet I constantly hear about projects running behind schedule and being overbudget.  Something must be fundamentally wrong with how we approach not only software project management, but management in general ( where are the productivity gains from the digital revolution? ).

Here is the passage:  ( I’m grouping software development management as a piece of strategy here )

“The rationalist framwork of the strategic planners provides a way to overlook the fact that CEOs–and indeed all other socio political structures of authority– exist as much on account of human irrationality as on the basis of rational decision making.  In the world according ot the strategists, the absolute authority of the CEO purportedly arise from the dictates of pure reason.  But in fact the corporate hierarchy that exists today is a work of customers, cultures, laws, and politics.  It is the product of a historical process, not a logical one.  Ultimately, it exists for many of the same reasons that warrior aristocracies existed in the ancient world.

Strategic planning, along with the rest of the discipline of strategy, is to modern CEOs what ancient religions where to ancient tribal chieftains.  Its rain dances( i.e. budgets ) and oracles ( forecasts ) ultimately explain the devine right of the rulers to rule.  It is actually a covert form of political theory.  As the tribal imagery of modern strategists makes plain, however, it is a political theory that advances little from its origins in the prehistoric era.”

Now I don’t want to say management is bad.  Somebody needs to maintain vision and make sure everybody has enough pencils to write.  Yet at a time when we are in a deep recession caused by a complete lack of oversight and management ( by both the watched and the watchers  )maybe we need to readjust how we think of the topic and what the true purpose of it is.

Titles are given out like candy these days…

Kurt Greenbaum, ”Social Media Director” for Stltoday.com, did the worst thing possible a “Social Media Director” could do.  He abused the privacy of a social media participant and then tried to justify his abuse to the social media using community. To summarize ( original reddit.com threads here and here )  Ken Greenbaum tracked down a user who posted the word “pussy” as a comment on a blog post titled “whats the weirdest thing you’ve eaten”.

That is plain stupid of a “Social Media Director” to do for three reasons:

1. By opening up your doors to user submissions you inevitable open your doors to vulgarity, penis pictures, racism, hatred, idiocy, spam, and pretty much every “shocking” piece of media you can think of.  Getting freaked out by “pussy” appearing as a comment to anything with the words “eaten” in it is not just overacting.  Kurt Greenbaum is completely missing the fundamentals of internet social participation.  Anything vaguely sexual will be made blatantly sexual.  His overreaction is like jumping in the ocean and then whining that you got wet and salty.  Thats what she said.

2. After this overreaction he tried to justify his actions to the internet world which generally does not give a shit how fancily or cleverly justified a response is.  The internet passes judgement really quickly and regardless if thats good or bad it is responsible for tracking down stolen goods and removing pussycats from abusive homes.

If an angry internet user swarm is on the horizon you better duck and cover and hope that it doesn’t only rips off three limbs and not all four.  Its really ignorant of him to assume a blog post reaction and some twitter comments will make this go away.  This guy seriously underestimated the damage of a large angry internet swarm.

3. The whole “all media is good media” is a lie on the internet thanks to page rank and google bombing.  2 hours ago I had no idea who Kurt Greenbaum was.  Now his name is permanently linked to blog reactions and twitter comments via the page rank algorithm.   His name is pretty much synonymous with douchebaggery at this point and its all his fault for escalating a pretty banal situation.

What gets my goat is that this “Social Media Director” utterly missed the mark here.  Social media is pretty new in earth time, but for internet time its pretty much ancient at this point.  If your unable to grasp such basic concepts of the lewdness of anonymous individuals, the irrational nature of the internet swarm, and the permanency of bad exposure you really don’t deserve that title.  Kurt Greenbaum is just another old man who thinks he “gets it” but certainly does not understand how this “internet” thing works.  Just because you can post a twitter messages and write a blog post does not make you a social media expert.

Lasers, Mirrors, and Egyptions

Cool post title right?

Most websites miss the point when it comes to displaying information that their visitors actually care about.  Recently I was searching for some dog kennel software and was amazed that only 70%ish of the companies I found failed to display a single screenshot of their product on their website. 100% failed to put a screenshot of their product on their most visited page, the homepage.  There was one thing 100% of them did though; fill entire pages with boiler plate marketing verbiage that I didn’t care about.

There is some overwhelming need to fill websites with nonsense marketing trivialities.   As soon as business types see a blank webpage with lorem ipsum in it they get all purple in the face trying to come up with as many platitudes about their product or services as they can.  ”Revolutionary”, “Optimized”, “Synergy!”, bleh.

Marketing people and graphic designers are no better.  Make some text bigger, tilt it 20 degrees, now your selling a product!  Lets spent 90% of our time making pretty things instead of giving the customer what they want to see.

Now when I think Lasers + Mirrors + Egyptians I think of a good time, or Stargate, but mainly a good time.  When I hear those three words together I want to see the lasers in action, bouncing off of something, and maybe some cool pyramids or dog headed warriors or something.   If these words described a board game I’d be all for checking out this thing in action.  Lasers bouncing off of mirrors and hitting Egyptians ( not the people of course )?  Nice!

Its to bad Khet doesn’t think the same way I do.  Instead of putting a video on their homepage of their laser, mirror, Egyptian product your instead treated with more of the boilerplate nonsense thats just so common these days.  Oh yeah, look, flashy Flash things, animated bs some graphic designer thought was the bees knees.

There is a tournament! – But thats not lasers and mirrors.
Mensa! – No mirrors and lasers.
Product box rotated in 3D space with a hover glow!  - Sigh.

Its one thing for kennel management software to be a little uncomfortable with their application, ( everybody is sick of winforms grey right? ) but its shameful for a company with such an awesome game concept to be just as afraid.  C’mon guys, show me the product, show me the lasors, make me care about what it is you do!

Sometimes I think websites that offer an interactive service or product should simply put three things on their website.  A logo, a phone number or link to purchase, and a big video of the thing in action.  Thats it, nothing more or nothing less.

Don’t be dumb like Khet and fill your websites with useless business banter and irrelevant badges or cute 3d perspective cruft.  Fill it with what people care about.  Fill it with what the hesitant strategy and board game lover wants to see.    I am not impressed with your flashy logo or animated hieroglyphics but I would be impressed watching the intricate mechanics of a game that combines chess and light reflection in action.

Bookmark Shaving #6

Bookmark shaving sounds so much better.

Amusing collection of programmer quotes:

http://www.storm-consultancy.com/blog/other/classic-programming-quotes/

My favorite:

“Saying that Java is good because it works on all platforms is like saying anal sex is good because it works on all genders”

I should use this when the group I’m working with is talking about the pros and cons of Silverlight… And by “I should” I mean “I will”.  ;)

Cleaning out the Bookmarks #5 – Hope Driven Development

I’m not sure why I bookmarked this one as I disagree with the authors point and the way he presents it.

http://www.makinggoodsoftware.com/2009/05/12/hdd/

Read it and make up your own mind.  This is the kind of post that advocates you assume the software your writing is going to be responsible for sending somebody to Mars and get them back safety.  Every check needs to be rechecked, every exception handled, every event and situation handled gracefully.

Most of the time we aren’t designing the auto pilot for a Boeing 747 and I think “hoping” or assuming certain things will be true is ok.  I consider software bugs a sign of progress and not necessarily a measure of quality.

Also I have the opinion that if your always expecting a user to enter A and then they start entering B and you give them a stupid error message they’re going to figure out how to get B into the system anyway.  I’d rather the software blow up in my face, get a bug report back, and learn the business or customer really needs a new feature or behavior to handle a new business need or some kind of growth.

Cleaning Out the Bookmarks #4 – Did you know 4.0

A great reminder of how fast the internet is changing things.  Whats going to happen in another 10 years?  Can we even describe the world then?

http://www.youtube.com/watch?v=6ILQrUrEWe8

Cleaning Out the Bookmarks #3 – Building a Stackoverflow inspired knowledge exchange.

Now the title of this link is misleading here.  There is almost no code.

The majority of the article is all about how to setup continuous integrationish like features over the top of a project.  I haven’t set up build scripts or single click deployment yet but have been meaning to give this guide a look whenever I get around to learning about this stuff.

I start out projects a little differently, get something stupid and simple working, see how that goes, and then hook up things like code analysis.  I don’t consider the bulk of knowledge within this link as “fluff”, just something you’d do later in the project rather than right away.  Thats a lot of work to produce nothing…

http://dotnetslackers.com/articles/aspnet/Building-a-StackOverflow-inspired-Knowledge-Exchange-Build-automation-with-NAnt.aspx

Cleaning Out the Bookmarks 2 – Using Opacity to Show Focus with jQuery

#2

Lots of my bookmarks are things I meant to get around to using or learning at some point and this link is no exception.

Well, it is, as I used it, but for my purposes it just didn’t work out well.

http://davidwalsh.name/opacity-focus-jquery

This link contains a nice and quick code snippet to change focus on related elements when a user hovers over one.  It gives and effect similar to highlighting the hovered link in a navigation bar or similar.  The problem I had with it was as you were looking through the grouped elements the opacity change made text hard to read and therefore scan.  Don’t know were I’ll use this again but the effect is so elegant I want to keep this one around.

Shows of the power of jquery too.  So much glamor for so few lines of code.

Cleaning Out the Bookmarks 1 – Eye Candy Is Business Requirement

Shaving the bookmark/desktop icon collection in preparation for a Windows 7 upgrade, thought I’d at least want to keep them around on the blog.  Most of these bookmarks are things I bookmarked to blog about, but never got around to it:

#1 Good collection of slides about how important a creating an appealing user experience really is.

http://www.slideshare.net/stephenpa/eye-candy-is-a-critical-business-requirement

Recently I was at work and somebody in management said “I just want to know how to create bad UIs faster”.  Ouch.  That goes against a lot of the points brought up in this slideshow.  My opinion is that when you create a pleasant user experience people are more likely to give a shit about your application and I’d rather have 10 enthusiastic users than 100 ambivalent ones.  ( somebody else quoted that last line better )

Users that give a shit are more likely to suggest the features they need, help with testing, and help share and promote your application to other potential customers.

I know its unprofessional to say “give a shit” instead of something like “care” but its the passion and intensity I feel when I talk about user experience makes using anything less shocking and brash very feeble sounding.