CodeBetter.Com
CodeBetter.Com
RSS 2.0 via Feedburner
           Do you Twitter? Follow us @CodeBetter

Jeremy D. Miller -- The Shade Tree Developer

Under the hood and working with .Net, TDD, Software Design, and Agile Stuff

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.



Comments

Peter Ritchie said:

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.

# December 31, 2007 10:15 AM

Colin Jack said:

> ALT.NET

Agree completely.

> "Customers that care"

Can I have some too, please!

# December 31, 2007 10:43 AM

Steve Trefethen said:

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!

# December 31, 2007 5:07 PM

SteveG said:

Amen!  

# December 31, 2007 7:56 PM

{ null != Steve } » Happy New Year said:

Pingback from  { null != Steve } » Happy New Year

# December 31, 2007 7:59 PM

Jimmy Bogard said:

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 :).

# December 31, 2007 11:06 PM

Jeremy D. Miller said:

Be nice Jimmy, or I have to break out:

"That's all right, that's okay.  You're all gonna work for us someday"

# January 1, 2008 8:24 AM

Bill Campbell said:

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!

# January 1, 2008 3:32 PM

Stephen Nimmo said:

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

# January 2, 2008 4:33 PM

Jeremy D. Miller said:

@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.

# January 2, 2008 4:42 PM

Si said:

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

# January 2, 2008 8:57 PM

Leave a Comment

(required)  
(optional)
(required)  

Enter the numbers above:
Add

About Jeremy D. Miller

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 previously worked as a systems architect building mission critical supply chain software for a Fortune 100 company and learned agile development practices as a .Net consultant at ThoughtWorks, one of the pioneers of agile development. Jeremy is the author of the open source StructureMap (http://structuremap.sourceforge.net) tool for Dependency Injection with .Net and the forthcoming StoryTeller (http://storyteller.tigris.org) tool for supercharged FIT testing in .Net. Jeremy's thoughts on just about everything software related can be found on his weblog "The Shade Tree Developer" at http://codebetter.com/blogs/jeremy.miller, part of the popular CodeBetter site. Jeremy is a Microsoft MVP for C#. Check out Devlicio.us!

This Blog

Syndication

News

All opinions expressed here constitute my (Jeremy D. Miller's) personal opinion, and do not necessarily represent the opinion of any other organization or person, including (but not limited to) my fellow employees, my employer, its clients or their agents.

About Me

"Best Of" Compendium

StructureMap (Dependency Injection for .Net)

StoryTeller (Supercharged Fit)

Build your own Cab

TestDriven

MVP