What I want in the new year

Getting the negativity out of my system before the end of the year comes with the promise of a new day and a fresh start in a new position.  I was going to call this something like a developer’s bill of rights but that’s pompous and we don’t have a “right” to any of this.  I’m not thinking of any one particular project or organization here but an amalgamation of all the ugliness I’ve seen the last couple years.  All the same, here’s for wishing.

 

ALT.NET

I want ALT.NET to be something that ultimately leads to a stronger, more capable .Net developer community.  I want a greater awareness of solid software engineering thinking in .Net teams.  I want things like “Separation of Concerns” and Continuous Integration and TDD/BDD to stop being fancy ivory tower things we don’t have time for and start being just things that we do.  That’s it.  I don’t want to change the world or convert MS to our new (stolen from every other developer community) philosophy.  I do want us to be exchanging ideas with other develoment communities instead of having a closed loop conversation with Microsoft only.  I’m sick of the tortured “what is it all about” and “who made you boss” crap on the mailing lists and the not entirely undeserved negative backlash to ALT.NET. 

The masked man behind ALT.NET Pursefight put it best:

We see the person best helped by Alt.Net as that young, enterprising developer living in a cave somewhere with a bunch of old geezers, basically left to his/her own devices to find the best tools/practices to help them implement their solution. Ie that one-in-ten developer who is using NHibernate and CI Factory while the rest of the team is stumbling along blindly, still trying to wrap their brains around all these new-fangled, advanced concepts like DataSets and Generics.

Perfect.  Let’s help that guy out and be a support group for folks like that.  Circa 2002 *I* was that guy.

 

Customers that care

You’re spending oodles of money to develop this software.  How about a little time and concentration during the project to make sure that what’s getting built is valuable?  My wife and I are buying a new house in Austin that’s breaking ground this month.  You better believe we’re going to be over to the construction site on a regular basis — even though there’s already a blueprint.

 

To Write Software that Matters

That’s right, I’d like to build stuff that somebody else cares about.  I built a new architecture for a Trade Capture application this past spring that I’m still fairly proud of.  The codebase has a very high level of test coverage, little DSLish fluent interfaces for gluing together common behavior, and has so far been very successful in efforts to extend the system.  It’s feature rich, but nobody is using it because nobody was asking for it.  I spent over a year and a half in a satellite office where the mothership didn’t give a damn that we existed period.  I want to be the main show and feel like the work has some purpose.

 

Good Requirements

Requirements that lead to software that matters and given in a form that’s easy for both the developers and testers to use.  I’m shooting for Executable Requirements next year for everything possible.  I refuse to let the dream die.  A vague statement of “just make it work like some other system” does not fit the bill.  Neither does a requirement pulled from a PM’s fevered imagination without customer involvement.

 

Testers embedded and collocated on the team

I counted it up, since the end of a project in about July of 2001 I have had roughly 12 months where I worked with actual testers.  I think it’s close to insanely stupid that so few organizations seem to pay attention to the testing.  Testing seems to go so much easier when it happens closer to coding and problems get fixed easier when the testers are collocated.

 

A Project Manager that I trust

Actually, next year PM is one of my hats, so I hope I can trust the PM.  I think too many project managers handle the stress of expectations from above poorly and pass that stress on to the rest of the team.  Other PM’s try to create a cult of personality around themselves on the project.   The project manager needs to be someone I can trust to take care of roadblocks from outside and manage priorities — but never someone I need to be afraid of in retrospectives.

 

A culture of sharpening the saw

If I hear any variation on the words “we don’t have time for [something that would make us faster], we’ve got stuff to do!” or “we’ve just got to Git ‘R Done!” one more time from anybody I work with, I will be charged with physical assault.  I’m putting the words “Sharpen the Saw!” on a poster somewhere in our new office space.  I like Jim Shore’s Fill in the Gopher Holes analogy here.

 

A Collaborative Workspace

I just wrapped up 15 months straight of cubesville living and being monitored.  Cubicles might as well be sold as an “Anti-Collaboration and Isolation” device for your employees.  I can’t wait to get back into a team room again.  I’m an introvert by nature, but I’ve gotten used to XP style teams and I miss the interaction with other people.

 

An enjoyable environment

Minimal tension, a dash of fun, and a sense of shared purpose.  I want to be anal retentive about anything related to the code and the final product, but loose about everything else.

 

No More Legacy Code!

I’m tired of taking over .Net code that’s less than 2 years old that’s unmistakably legacy code — i.e. code that you don’t want to work with.  Granted, I’m very particular about how I want things, but test coverage, consistent code formatting and naming, and cyclomatic complexity numbers measured in the tens shouldn’t be too much to ask for.  I’ll accept bad code in 5 year old systems, but not from freshly minted code.

About Jeremy Miller

Jeremy is the Chief Software Architect at Dovetail Software, the coolest ISV in Austin. Jeremy began his IT career writing "Shadow IT" applications to automate his engineering documentation, then wandered into software development because it looked like more fun. Jeremy is the author of the open source StructureMap tool for Dependency Injection with .Net, StoryTeller for supercharged acceptance testing in .Net, and one of the principal developers behind FubuMVC. Jeremy's thoughts on all things software can be found at The Shade Tree Developer at http://codebetter.com/jeremymiller.
This entry was posted in Uncategorized. Bookmark the permalink. Follow any comments here with the RSS feed for this post.
  • Si

    Well said Jeremy, nice to say there are similar minds out there!

  • http://codebetter.com/blogs/jeremy.miller Jeremy D. Miller

    @Stephen,

    I might get my high hopes crushed to bits, but I think I’m going to be able to make it happen for my new job.

  • http://stephennimmo.com Stephen Nimmo

    Let me know when you find a place with these attributes.

  • Bill Campbell

    Great Post Jeremy! And best of luck in your new digs, new position and the MVP. What a way to start a new year!!

    What do I want for 2008 – Ditto on all you mentioned and could someone tell me how agile involves being given fixed requirements and a fixed delivery date with a fixed number of resources?? We’ve all got our thorns – LOL!

    Happy New Year!

  • http://codebetter.com/blogs/jeremy.miller Jeremy D. Miller

    Be nice Jimmy, or I have to break out:

    “That’s all right, that’s okay. You’re all gonna work for us someday”

  • http://grabbagoft.blogspot.com Jimmy Bogard

    Quite the opportune time to build here in Austin too, housing market and all…don’t forget to get conduits built in, ya never know when Hanselman wants to swing by and rock out to the Cat6 gigabit.

    What do I want? Why, an undefeated UT v. Rice sports year of course, starting with BBall, making the turn with baseball, rounding it out with football. I’ll be crossing my fingers on the last one, ya never know we might not cover the 40 point spread :).

  • http://blogger.forgottenskies.com Steve Gentile

    Amen!

  • http://www.stevetrefethen.com/blog Steve Trefethen

    Here, here! I’ve read your blog for a long time and the negativity that was creeping in has made me hesitant to “click through”, I’m glad to see your acknowledgement of that.

    Here’s to a fresh ’08!

  • http://colinjack.blogspot.com Colin Jack

    > ALT.NET

    Agree completely.

    > “Customers that care”

    Can I have some too, please!

  • http://www.peterRitchie.com/blog Peter Ritchie

    Well said! I think the biggest problem in the software industry is the lack of good planning. And planning includes ensuring the plan is on track–it’s not about carving in stone what will pop out at the end of the process in 12 months, it’s about planning to satisfy the customer’s requirements.