Thursday, September 9, 2010

Agile Programming

A fellow U of Idaho alumni hit 'reply-all' to recent survey request sent by Idaho's computer science department. It was a shame that Idaho sent out the e-mail allowing this, and also that a graduate would make use of this fact. What really got me going was the e-mail:

With all due respect, this "survey" feels like a complete joke and hardly gives me any confidence in the  U of I C.S. program.  How doyou expect a couple questions like that to really affect anything?

The software world is going Agile and Lean.  How much of that are you teaching to students yet?  If you really want to be a leading edge CS department, you've got to be teaching people how to write good solid clean code.  Is test driven development anywhere in the curriculum?
When I graduated, I was sent into the world woefully under-prepared by the university.  I pretty much taught myself how to really write code and on my senior project, I was the only person on the team that could really even write any code - I ended up writing all the code for the rest of the team - and they all got the same grade for the project that they could not even write the code for.

Since then, I've hired a lot of software developers and run my own company for 15 years.  Some of the best software developers I've hired had *NO* college education.  I'm not the only one that's had that experience.  It's making us software professionals question, more and
more, the value of a college degree in this profession.  Especially in this economy.  I cannot in good conscious recommend to a talented youth that they spend 4 yrs at the U of I before they enter the profession.  In fact, spending 4 years at the university might just set you back 4 or more years modern development paradigms.

The U of I is in a position to make a difference, if you *REALLY* want to make a difference and not just appease the same old system of tenure and outdated instructors.  The question is *WILL* you?

I am part of a growing, international community of software professionals that really cares about our craft of software development.  We teach others, put on conferences and make it work in real enterprise environments.  I currently live in NYC where I'm more than busy staying at the top of my game.  Myself and my colleagues really do care about the state of the software industry.  I have yet to run into a single U of I person in this ever-growing Agile software
movement.  Why is that?

I'd be interested to help you all in an advisory role if you really want to change.  I'd even be interested in moving back to Idaho if I though I could make a difference.  I graduated in 1986 and I'm at the forefront of the Agile/Lean software movement.  If you are just going to keep on doing the same old government funded, barely sufficient program that I experienced 20 years ago, I guess I'll keep on dismissing the message (and I'm not the only alumni, I'm sure).

I hate to feed the trolls, but I sent this back to him.

I've found three categories for developers:

1.) Developers that don't try to expand their knowledge.
2.) Developers that read books on Agile, Scrumm, Rational, Crystal, XP, 6-Sigma, Test driven development, etc. and think it is the bee's knees.
3.) Developers that have passed through enough versions of stage 2 and seen similar stages in business, marketing, engineering, etc. that they realize there is a difference between buzz-word fueled fads and the common fundamental techniques they all seem to wrap up. The key
question: Are the fundamentals taught at Idaho?

Had you listed the fundamentals that Idaho was skipping, I may have agreed with you. Instead, I got a few buzz-words.

I always thought this was a good essay:
Big Mac cs. The Naked Chef

I recently found the following article on reddit from someone who is similarly tired of hearing Agile all the time:

Agile Ruined My Life

Agile, along with these other fads, does have fundamentally important concepts to be taught. But please drop the buzz-words that go with it. Concentrate on the techniques. And realize that not every set of pre-packaged and marketed management techniques will work for every project.

Or maybe I should give up my whining and get rich by creating my own buzz-word, then repackage all those same techniques and pretend they are new. It is just so "formula."