Saturday, August 2, 2008

Top 10 Signs you've missed the point of the [Rational] Unified Process

[To be read with a drum roll and a David Letterman voice/accent:]

Here we go.
Top 10 Signs you've missed the point of the Unified Process:

10. You whine about how much documentation you have to produce.

9. All the requirements, analysis, and design are done up front - but the "Construction" is done in "iterations"

8. Refactoring is not a part of the process - it's proof that you didn't get the design right early on.

7. Your project timelines slip due to scope creep.

6. You think Use-Case meetings should have every committed person on the design, development, business analysis teams, and all the end-users and other customers at them.

5. You haven't talked to the customer in over 3 weeks.

4. Testing is something you do at the end of development.

3. Integration is done at the end of the development.

2. You've left the most challenging pieces for last.

And the #1 sign you've missed the point of UP:

1. Your iterations last 3 months.

The Hitchhiker's Guide to the Java Enterprise Edition

I've been writing Enterprise Java development and architecture courseware for NextGen for over 5 years now, as well as the courses I've written for video game development, project management and other related subjects (XML, Oracle, PERL, and a few others). I've written entire curricula for JEE (JEE wiki) and Video Game development (focusing on the massively multiplayer aspects especially), and in my own mind at least have a way to get them to dovetail nicely. (Our prototype WIP MMORPG is based on a JEE backend handling NPC AI and universe coordination).

Recently I've been driving a lot and listening to a lot of audiobooks on my iPod. I went through my entire collection (which includes all 7 books of the Harry Potter series) twice. Except "The Hitchhiker's Guide to the Galaxy", which I avoided.

Now don't get me wrong - I actually love the material. I reference it many times offhand in my classes - obscure references to the number 42, comparing the immersion into JEE by a former COBOL programmer similar to the consumption of a pan-galactic gargle blaster, the usage of a Somebody Else's Problem Field as the main idiom of JEE architecture (especially the best practices surrounding MVC and the developer/administrator disconnect) etc. - to see who *really* knows where their towel is.

The problem I have with the Guide is a story of abuse and victimization. My first year of college I had a roommate - who will remain nameless but for the sake of having something to call him I shall call him Ryan Zerby - who constantly quoted the book to me the entire year. By the end of the year I was drooling as if I had been sent through the Total Perspective Vortex but also pretty much knew the entire content of the book. I therefore refused to read it under any circumstance for the rest of my life.

My friends later in life knew of my vow but also knew I would really, really enjoy the book if I had in fact read it. As my students could probably attest, I don't generally think or speak linearly. I also have a huge fondness for large multisyllabic words and inverted syllogisms. About 4 years ago, my friend Marty found a way around my vow - a loophole. He gifted me with the BBC Radio 4 version for Christmas.

When I finally gave in, I imported the entire set of CDs into my iPod and created playlists for each CD. I listened to it. At one point, I got through almost all of the third CD before I realized that I had sorted the playlist of that particular CD backwards. Ryan didn't quote me the book linearly - and the book really is a masterpiece of non-linear story telling - so I didn't know the difference for some time.

And I haven't listened to it since. Quoted it many, many times, but not listened to it. Until now. As it turns out I've been teaching a lot of COBOL programmers recently who are making the leap into JEE as it slowly replaces COBOL as the mainstay of business computing. And most of them could use a dose of non-linear thinking. Or the afore-mentioned pan-galactic gargle blaster (I often dumb this down to dropping acid, but that doesn't nearly do it justice). They're used to a sequential model of programming. JEE (formerly known as J2EE) is object-oriented, stateless, multi-tiered and multi-layered - it bounces around a lot ("like a hyper-spastic super-ball in Zero-G" according to one soon-to-be-former COBOL programmer. He forgot about the frictionless surfaces.).

The class that I had been driving to and from that had me listening to the Guide was a condensed version of one of my JEE curricula. Even condensed it's huge. They only have 3 of the 7 courses right now (they're only scheduled to get 5), trimmed down to bare essentials, and it's probably around 350 pages or so. It will probably be about 700 or so before they're done. If I condensed just that development/architect oriented curriculum in it's entirety, it would probably be around 1000 pages.

Then there is the administrator's curriculum. And the project management ([Rationa] Unified Process/Agile/eXtreme Programming oriented) courses. And then there's the supplemental HTML, JavaScript, AJAX+DOJO (Dojo Wiki), and SQL/PL-SQL (PL/SQL wiki) courses.

Almost all of these courses get continuous refinements and updates. Most are mature and receive very little (the Intro to Java hasn't changed that much as the base technologies haven't), but some receive quite a few as they're based on rapidly changing technologies (AJAX+DOJO, Java Server Faces (JSF wiki), etc.)

So in this round of changes (where I'm also changing my internal publishing practices), I've decided to bring them all together create a condensed HHGTTJEE version, which will be slightly cheaper than the original version, and of course will have on the cover the phrase (in very large and friendly letters):

Don't Panic!

[Pricing and availability is yet to be determined. We're expecting September 2008. That's somewhat realistic. For pricing, we're not quite so certain. An original swag at costs will be $3.95US plus $57,347 in shipping from Ursa Minor Beta. But that will probably change. :-)

Here's the cover page. Table of Contents will be posted shortly.
There's also a Video Game development version if demand is high enough.