The Inflexible Customer & We’ve Always Done It That Way

Thursday December 6th, 2007 @ 12:39 AM by Chris

I got into software development because I wanted to make video games. That didn’t work out, but I stayed in software development because I enjoyed the idea of being able to enact immediate change in my work. Software is soft, and that means we can improve it today, tomorrow, next week or next year. And we can see the results of our improvements immediately; we don’t have to wait for the cement to harden, we can just hit “Build”.

But quite often there are barriers to enacting change and improving design, and often those barriers come in the form of customers.

Agile development teaches us to be flexible: we utilize clean designs with clear separation of concerns so that we can refactor our code as necessary to meet the changing demands of the customer; we use proven patterns and practices so we can stay out of dangerous waters; we use nifty tools to help increase our productivity. But the thing that doesn’t get talked about enough is the inflexible customer.

There’s a phrase where I work that crops up in just about every conversation we have with our customer: We’ve always done it that way. That phrase has has single-handedly added more lines of code and more complexity to this project that anything else I can think of. It has destroyed our ability to simplify our design. It has lengthened our development time considerably.

And it has ripped out my heart.

I love software development - when it is software development. What I don’t enjoy is having the customer rigidly dictate the design of an application based on some pre-existing paper process and then making sure to squash every effort to improve the workflow or the software by repeating the mantra, “But we’ve always done it that way.”

I can honestly say nothing kills my excitement - nothing quenches my fire - faster than, “We’ve always done it that way.” I imagine it is like staring at a hideous mess of code and having someone say, “You are not allowed to touch that - don’t refactor that at all - we’ve always written code that way.”

I’m curious to know what other developers do to survive a customer like this. What keeps your passion afloat when you’re presented with this situation? I’m having to fall back on Personal Pride and Work Ethic. And honestly, I hate those guys. Yeah, they get the job done, but they’re so much less pleasant to be around than, say, Passion and Excitement.

Posted in Agile Development, Software Development, ALT.NET Conference | No Comments »

ALT.NET: It’s Not That Complicated

Monday October 8th, 2007 @ 12:07 PM by Chris

Thus the backlash begins. Colin Ramsay writes:

…the ALT.NET mob organise an enormous desert circle-jerk, and I call bullshit. If they really wanted to change things then they should be writing about their techniques in detail, coming up with introductory guides to DDD, TDD, mocking, creating screencasts, or giving talks at mainstream conferences, or producing tools to make the level of entry to these technologies lower than it is.

Ayende has a response, which is so concise I can’t add anything more.

Reading Colin’s post makes me think there’s two problems at work here.

First, I think way too much time, effort and discussion has been wasted on a simple moniker. It’s not the name that matters, it’s what’s behind it that counts. One of the topics that received a lot of attention this past weekend at ALT.NET was, “What is ALT.NET?” and how to define what it is. Various people (Dave Laribee, Raymond Lewallen ) have blogged about what ALT.NET means. And yet still some folks keep attempting to redefine it as some elitist movement, or anti-Microsoft sentiment.

It is none of those things, and if you can’t see past that then you’ve turned off your ability to use logic and reason.

The truth about ALT.NET is actually a lot more simple than anyone has said. You want a concise definition? Here’s mine:

ALT.NET is a group of developers trying to find the best tools and practices available to help them build software in the Microsoft/.NET domain and bring business value to their customers.

That’s it. That’s all there is to it. It’s not any more complicated than that. It’s not about Morts and Einsteins, it’s not about tools and paradigms. It’s simply about developers trying to discover the best ways to get the job done. If you are a developer who has a pain point and says, “I think there’s a better way to do this and I’m going to figure out what that is, whether it’s a tool or technique,” then you’re ALT.NET.

During the conference a whiteboard was devoted to renaming ALT.NET so that the name reflects the ideals more accurately. Someone suggested Pragmatic.NET, and I hope that’s the one that sticks, because it’s the best single word summary of what this was all about.

The second problem at work in Colin’s post is that for whatever reason he (and others) thinks this is an elitist thing. He writes:

…I find it pointless that you’d go to a conference to discuss the stuff that everyone there already knows. DDD, BDD, MVC - these aren’t things that will be unknown to people attending the ALT.NET conference.

During the closing comments of the conference everyone (and I mean everyone) got a chance to talk for a moment about anything that they liked/disliked about the conference. Many people voiced the same concern Colin had and were wary when they arrived that this would be nothing more than a bunch of people agreeing with each other. Those same people then went on to say how pleased they were that it did not happen that way.

ALT.NET saw a wide variety of developers with a wide variety of skill sets. It was not developers preaching to the choir. It was a very healthy exchange of ideas, and a lot of very spirited debate. Part of the reason for that is because ALT.NET is not about one “class” of developers getting together - it was about a group of developers with the same “mindset” getting together (namely the desire to use the best tools and practices to deliver business value). Because it is the mindset that is important, class becomes irrelevant.

What was interesting to experience at the conference - what was interesting to learn - was that it’s not the techniques and tools that everyone was in agreement on. It was something else: it was the pain points. One of the most amazing things that we all discovered at the conference was that we’re all experiencing the same problems in the domain of .NET development. But the solutions are not universal - not everyone is in agreement about the best tools and techniques, in large part because everyone’s needs and situations are different.

I wish Colin, and other developers like him, could have been there. And hopefully next time we can have the conference in a bigger space that will accommodate more people.

Because ALT.NET was not divisive. What it was is limited by physical space. That’s unfortunate, but a reality.

Can the community of ALT.NET do more to spread the word on the tools, techniques and ideas? You bet! And I think everyone wants to do more. One of the themes of the conference was the idea that we have to take these things out to other conferences and user groups and spread this stuff around. We have to get the rest of the .NET community involved. We have to find the developers who want to do things better for their customers and get them involved.

Colin asks:

But wouldn’t that conversation have been a whole lot more interesting if the second developer hadn’t heard of those ideas?

You bet! But this all has to start somewhere, doesn’t it? That’s what this conference was - it was the starting point. But what we can’t do now is get mired in a bloodbath of words. That won’t help these ideas grow.

Posted in .NET, Agile Development, Software Development, ALT.NET Conference, AltNetConf | No Comments »

ALT.NET Conference: Quotes

Saturday October 6th, 2007 @ 9:50 PM by Chris

Some quick background: The Boo Build Server (Boobs) has really picked up steam at this conference in terms of joke productivity.

While chatting with Jay Flowers tonight at the sports bar, a young, blonde hottie waitress walked by. Jay turns to me and asks, “Did you get a look at that build server?”

Posted in .NET, Agile Development, Software Development, ALT.NET Conference, AltNetConf | No Comments »

ALT.NET Conference: Brave New World

Saturday October 6th, 2007 @ 9:43 PM by Chris

Scott Guthrie gave a presentation today about Microsoft’s new MVC framework for ASP.NET. Jefferey Palermo has the technical lowdown here, and Roy Osherove gives his reaction, mostly from the standpoint of TDD. It’s a great reaction, though, and I think he speaks for a lot of people here at the conference when he says, “finally they get it.”

The “it” he’s referring to is a lot of things: the community around .NET, specifically the open source community, the tools, and the idea that there are a lot of developers who are building pieces of functionality that fit into the .NET puzzle. But Microsoft has had an an unfortunate history of not working in concert with this community, and choosing to do their own thing instead.

Scott’s presentation today was awesome, not just from a technical standpoint (the MVC framework is very cool, however), but also from a philosophical standpoint. While Scott was explaining the features of the framework (which got a lot of people excited all by itself) the really exciting bits were the things that pointed to a mind shift within Microsoft: the fact that all methods were virtual, for instance, thus easing testability. Or the fact that it was pluggable, so you could use whatever dependency injection choice you wanted.

These features and design choices represent a huge paradigm shift for Microsoft. They say to the open source .NET community: “We recognize your contributions, and we’re not going to try and reinvent what you’ve done. Instead, we’re going to make it pluggable, so you can use whatever technology you favor.”

The importance of that philosophy and that mindset change cannot be understated. As Jay Flowers said tonight when I was chatting with him, it sends a message to open source developers that “there is a space for you.” It plays directly into the ALT.NET philosophy, which is: “We’re going to use whatever tools we think are best to get the job done.” Scott’s presentation couldn’t have been more appropriate or well received at any other conference.

The exciting part of all of this, at least to me, is the idea that this could be just the tip of the iceberg. There’s hope now for the future. Scott Guthrie can’t be the only developer at Microsoft who thinks this way and has the influence to navigate Microsoft into this Brave New World.

As I told Jay tonight: This is an exciting time to be a .NET developer.

Posted in .NET, Agile Development, Software Development, ALT.NET Conference, AltNetConf | 3 Comments »

ALT.NET Conference Kickoff

Saturday October 6th, 2007 @ 11:38 AM by Chris

A year ago I attended the Patterns & Practices Summit in Redmond, WA. It was a pretty typical conference: keynote speakers, 450+ attendees, bad lunches. But one of the really cool things that happened during the conference was getting to chat with Brad Wilson in the hallway along with about ten other folks on subjects like CAB, MVP/MVC, unit testing and how to map data for display purposes.

The hallway conversations were great; the best part of the conference. And now I’m at ALT.NET, where the entire conference is one big hallway conversation. It is a really cool way to hold a conference.

The Open Spaces format is quite different from a typical conference. Instead of planned speakers, the attendees get together and determine the content and then they gather together in various conference rooms and have those “hallway conversations”. It’s incredibly cool - very organic and free flowing - the conversations can cover a lot of ground in a short amount of time and tend to bleed over into other areas. For instance, I ended up in a really cool impromptu session with Scott Guthrie discussing language features of .NET 3.0 (and some stuff that is somewhat unknown in .NET 2.0). It was a great session.

The great part about this format is that novices in an area can ask questions and experts can answer. There’s not one authority on anything trying to preach a single viewpoint, but instead a collection of people with varying degrees of expertise sharing ideas. Everyone learns, everyone benefits. It’s one of the best environments I’ve ever been in.

Starstuck

I’ve been starstruck with the sheer amount of talent and knowledge that is here. As I overheard at one table, if a bomb went off in Austin, a whole lot of great .NET minds would be lost. Some of the people in attendance: Scott Hansleman, Jeremy Miller, Scott Bellware, Scott Guthrie, Peter Provost, Brad Wilson, Jean-Paul Boodhoo and Martin Fowler. Yes, even Martin Freaking Fowler showed up! It has been great to meet many of the people whose blogs I read. What’s really cool: everyone here has passion for development, and no one is afraid to speak their mind. It’s infectious being around this many people who have a real desire to find the best tools and practices for .NET development, and then to bring those discoveries to the rest of the .NET development world.

It’s just the beginning… More to come.

Posted in .NET, Agile Development, Software Development, ALT.NET Conference | No Comments »