Monday, September 28, 2009

Context, context, context

Joel Spolsky's latest diatrabe, and the outcry the blogosphere predictably issued, got me thinking about, well, about an old joelonsoftware article: Five Worlds. This one is a favorite of mine, maybe second only to the classic The Law of Leaky Abstractions. The point, in a nutshell, is that we too often forget the importance of context when discussing our trade.

I personally believe the Agile movement induced solid progress in software development teams worldwide, but we shouldn't forget where it came from: corporate software projects. Extreme Programming was born in a Chrysler project, it doesn't get much more corporate than this. Most of the signatures under the Agile Manifesto come from consultants, and again, is there anything more corporate that consultants?

This isn't meant to be a put-down of enterpresey work. I am myself a consultant and won't apologise for it. But it pays to look at the differences between the internal corporate projects world and the software product development world:
  • Corporate projects tend to be wide: lots of forms gathering data, lots of reports spitting data out, huge ugly menus. Products are usually more focused, with fewer interaction points that are backed with more sophisticated logic.
  • A consequence is that, while a developer for an internal corporate system might see any given screen a handful of times throughout the project, a software product developer can live inside the system almost as much as the end users (and so, catch more bugs).
  • Corporate systems are expected to reproduce complicated real-life behavior. Tax codes and compliance requirements come to mind. Sounds boring, but at least there are clear expectations for what the correct functioning of the software should be. Another way to put it is that in these systems, it's feasible to anticipate putative bugs. In a product, on the other hand, there could be many undesirable characteristics that are impossible to precisely specify (say we're working on a game, and level 3 should be just a notch more difficult than level 2 but still much easier that level 4 - how would you precisely specify that?).
  • First impressions are crucial for a product. A 1.0 dud can kill a startup - just think of Cuil. Not only it must work, it must be polished, discoverable and pretty. The incentive framework for internal products is very different; as long as the team delivers anything at all, even if almost useless, it's often possible to change course and steer the project towards the actual needs.
Reading these points, it seems that I'm justifying a lower standard of code quality in product development. I'm not. TDD really does allow you to go faster, I can't even fathom what would be like to code without refactoring every few seconds, and all the old sayings about how we spend much more time reading that writing code are true, regardless of how crucial is that we reach that 1.0 milestone.

I was desperatly trying to avoid this cliché, but I just couldn't resist. In the end, we should really try to learn from each other. Agile teams should spend more time thinking about the people who will live in their systems day-in-day-out, and product devs might have a thing or two to learn from the fast pace of a pair TDD-ing away.


Unknown said...

For this innovation, Origina Replica Breitling has created a dial and a ceramic bezel of chocolate color ,it was the Ceragold technology that was used to create the Rolex Submarine and the new Hermes handbags indexes on the dive scale.This 1:1 Replica Rolex Watches features a brown leather strap with rubber lining.The new Rolex Submarine is made of stainless steel, crisp lines and crisp,make this exceptional sports top replica watches such as sporting champions and talented runners a daunting challenge

Anonymous said...

Long straight hair has human hair extensions been a favorite of girls, this long hair extensions salestraight hair is more pure. Oblique bangs cheap hair extensions highlighted the perfect face, and the tail remy hair extensions slightly upturned broken cut, giving a fashionable youthful hair styling.

opbest said...

I used to be suggested this blog by means of my cousin.
I am not sure whether or not this put up is
written by means of him as nobody else recognize such unique about my problem.
You are wonderful! Thank you!

My web page::; 안마


Academic Writing Consultancy said...

I am a software engineering students who have a great interest in the software engineering life cycle. I found this while searching for write my essay for me cheap uk based services and I found this article. It is so informative. The way people have started shifting from the waterfall method to the agile method without evaluating and comparing their pros and cons is really disturbing. Every model comes with its pros and cons and hundred percent success is not guaranteed in any model

Herry said...

Absolutely, context is everything! Just like when you're trying to make a fashion statement with an Indiana Pacers letterman jacket – it may be trendy at a game but might raise eyebrows at a formal event. Similarly, understanding the context of a conversation or situation is key to effective communication and decision-making. It's all about appropriateness and relevance.

harperpaul said...

"Rafael Rambling" is not just a collection of words; it's an exploration of the human experience. Dive into topics ranging from everyday observations to deep introspections, all presented with Rafael's distinctive voice and perspective. This blog promises to be a melting pot of ideas, where readers can find common ground, inspiration, and a sense of connection.
loudoun traffic lawyer