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

ALT.NET isn't completely baked and there's nothing new here...

 

...and I'm fine with that.  I want the ALT.NET mission statement and credo to remain up for debate for a while longer.  I wanted to try to respond to Frans Bouma's comments on ALT.NET, but I don't have all of the answers to his questions yet.  What ALT.NET is, other than a perfectly transparent excuse to get together, is still being defined.  We're having a long running argument over a mission statement that's not particularly going anywhere.  We're not the successors to the Agile movement because most of us are Agilists of one stripe or another.  Despite publishing HOT/NOT HOT lists we're not necessarily pushing any particular set of specific tools so much as a set of values -- which will of course lead to some bias in tool selection.  We're passionate about software, and that drives the participation in and usage of open source tools.  In the end, I hope ALT.NET is mostly about actually doing what we already think is best, constantly refining those ideas, bringing in the best ideas from software development, and finding a way to teach others as well. 

One of the negative comments this weekend went something like this:  "ALT.NET isn't any kind of new revelation," to which I'd reply "exactly!" and add that noone ever said that it was.  Another blogger said that ALT.NET was just a repackaging of the Pragmatic Programmers.  If all we did was raise the awareness and understanding of the ideas in the Pragmatic Programmer book to .Net developers at large I'd call ALT.NET a success.  I think of ALT.NET more as a means to mainstream existing techniques, thought, and tools into the larger .Net community.  ALT.NET didn't invent Domain Driven Design, Behavior Driven Development, or Design Patterns, but we can help more people apply all of these things successfully and advance their usage in .Net.  It's not entirely altruism either.  All this stuff that I want to use on my projects will go down a lot easier if you know how to do it too.

If you're foolish enough to ask, any ex-Smalltalker will tell you that they knew everything we're discovering about OOP or literate programming back in the eighties.  Yet all the same, most code that I see in the wild is messy procedural code with classes because basic OOP knowledge and best practices hasn't been mainstreamed.  The SmallTalkers knew everything then, but many developers today don't.  Something didn't happen correctly to pass the lessons of a previous generation down to the next.  If the original developers of the messy procedural code understood twenty year old best practices about OOP that code could be much better and they could have worked faster as well by writing less code and avoiding the sphaghetti code problems. 

Sure, I'd like to see innovation being piped through ALT.NET, and I saw a lot of material on the cutting edge of software development at the conference.  However, the main goal of ALT.NET for me is to democratize better software engineering practices that might not be well known yet throughout the larger .Net community.  Software development as a profession isn't very good at disseminating the lessons that we've already learned.  I'm almost completely self taught, and I know that made some of the lessons I learned go down much harder than they might if I'd had effective mentoring along the way.  Advancing the art of software develoment never ends, but there's a lot to gain simply by learning and teaching more about what we've already discovered. 

And Frans, writing a full fledged competitor to LBLGen is definitely not in the works for me.  That sounds like a great recipe for having no life.  I'm perfectly content to use what's already out there, assuming that I ever get to do anything but write Xml configuration for a tiny bit of Java on the server side ever again.



Comments

David said:

Hi Jeremy,

I think you hit the nail on the head when you wrote:

"If all we did was raise the awareness and understanding of the ideas ... to .Net developers at large I'd call ALT.NET a success.  I think of ALT.NET more as a means to mainstream existing techniques, thought, and tools into the larger .Net community."

Was just reading this article about the 80% of developers that have no idea about Monorail and are content just doing 9-5: codeclimber.net.nz/.../Yet-another-ALT.net-opinion.aspx

How many of these people slaving over the WebForm page life-cycle would choose that if they had been given a choice from the start?

To me ALT.NET is addressing just this point: raising awareness of alternatives to a level where "mainstream" developers have a choice. At present the choice isn't there. It shouldn't be about pro-this or anti-that, it should be exposing the community at large to all the options, and getting enough information out there to support the choice that teams and developers make.

# October 11, 2007 10:59 PM

Vladan Strigo's website - Vladan.Strigo.NET said:

# October 12, 2007 4:37 AM

Jeremy D. Miller -- The Shade Tree Developer said:

It took a week, but I finally got around to finishing my recap of the ALT.NET Open Spaces event from

# October 14, 2007 7:09 PM

Jeremy D. Miller -- The Shade Tree Developer said:

It took a week, but I finally got around to finishing my recap of the ALT.NET Open Spaces event from

# October 14, 2007 8:41 PM

Chris R. Chapman said:

Jeremy - Great post;  I have an observation to add in response to what you say here:

"Something didn't happen correctly to pass the lessons of a previous generation down to the next.  If the original developers of the messy procedural code understood twenty year old best practices about OOP that code could be much better and they could have worked faster as well by writing less code and avoiding the sphaghetti code problems."

I couldn't agree more - that's why I looked at one particular piece of the puzzle:  University CS departments.  I did a rough analysis on schools in Canada[1] and Ontario[2] to understand the extent of "best practices" instruction for undergrads.  It's been my experience from working with interns from some prestigious schools that they haven't a clue about proper OOD, unit testing, design patterns, refactoring, orthogonality, or a host of other topics that aren't anything new and should be standard courseware.

It's cool and sad that we actually need an Alt.NET conference in this regard:  Cool because we can get together and share knowledge, sad because it is needed to undo the damage CS schools are wreaking on the new blood coming into the industry.

[1] blog.chapmanconsulting.ca/.../Reviewing+Canadian+CompSci+Schools+Whos+Teaching+Best+Practices+Part+II.aspx

[2] blog.chapmanconsulting.ca/.../Reviewing+Ontario+CompSci+Schools+Whos+Teaching+Best+Practices.aspx

# October 15, 2007 7:51 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!

Our Sponsors

Free Tech Publications

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