Monday, January 18, 2010

The future of UI will be boring

I'm not officially a UI guy, but I liked this blog post:
The wiring that powers your home, the plumbing that brings you water, the roads you go to and from work on, work in mostly the same way they always have. This is ok. Lack of upgrade is not a sign of failure. Your genetic code is hundreds of thousands of years old, and seems to be working quite well if you’re reading this. It might just be more important to consider how the tech in question will make your dreams, or someone else’s, come true. If you worry more about the ends, rather than the means, revolution in UI is less important than you suspect it is. I mean, I’m a writer. If a quill pen was good enough for Shakespeare, what do I really have to complain about?

Continuous Deployment - releasing two-three times a day...

Very interesting case study on applying Lean principles to deployment. Serious elimination of waste.

Continuous Deployment is Continuous Flow applied to software. The goal of both is to eliminate waste. The biggest waste in manufacturing is created from having to transport products from one place to another. The biggest waste in software is created from waiting for software as it moves from one state to another: Waiting to code, waiting to test, waiting to deploy. Reducing or eliminating these waits leads to faster iterations which is the key to success.

Thursday, January 07, 2010

Neither Enterpriser or Hacker Be

I know of what Tim speaks around large, unwieldy Enterprise-level projects.  They are money pits and resource pits.  I suspect most of the engineers working on them aren't really having a good time.

But Tim seems to glom Web developers and agile methodologies into the same boat, and I think it's important to make a distinction.  There are strong agile-style developers and there are Hackers.  Hackers do follow iterative development and are focused on user experience, but often testing and reusable design go out the window, and monolithic spaghetti garbage heaps are often the result.

When I was interviewing during the Web 1.0 boom, a common job description was something like "Emergency Senior Engineer."  I would go into a shop that had hacked their way through the first few years and now they were seriously stuck, and were looking for someone with some grey hairs to help clean things up.

It's definitely very hard to get engineers with an Enterprise mentality to adopt an agile approach.  Enterprisers are very uncomfortable when they aren't writing out all the specs and plans up front - they are wanting to cover all the bases and get signoff before they start working - as Tim said "Enterprise IT has spent decades growing a defensive culture based on the premise that you only get noticed when you screw up, so that must be avoided at all costs."

But Hackers are very uncomfortable with having to write tests first, thinking about reusable design, spend time cleaning up code they touch, and so on.  Many times I've seen a roll of the eyes when I bring up these kinds of things.  I think this is because these guys love just whacking out code, are purely focused on technology, and don't have the patience or interest to think about maintainability.  Normally a few hellish releases where you can't get anything done because all you're doing is fixing bugs straightens out this attitude.  But by then it's often too late for the project at hand, without major rewrite.

That said, if I were to be forced to choose between an Enterprise culture or a Hacker culture, I'd probably choose the latter.  Enterprisers take years (and years) to get something to market, and it's usually not what anybody actually wants.  Hackers get hideously coded stuff out quickly, get feedback, and probably have money coming in when it comes time to rewrite.

Also, let's talk about culture.  Enterprise projects have this horrible stuffy dead feeling, like you're working on the 7 and 1/2th floor.  Everything's about specs and standards and ISO and most of the time you're in meetings and doing reviews.  Hackers are often a bit wacko and over-stimulated, but at least there's energy there.

Luckily, right now I'm on a team committed to agile practices, and it's definitely a lot of fun.  Our customers are pretty happy too.  And this, in an enterprise!  Maybe there's hope...