Family Contracting, or "How to Curb Your Enthusiasm"
I got pretty lucky with my next "contract". I'll be doing some work for my dad's company, a land surveying company where not only my dad, but all three of my brothers and my mother also work. That's literally my entire immediate family (Mrs. Hillbilly and the young'un notwithstanding).
It's an interesting environment, to be sure. My mother's nickname is the Office Nazi. Rather than Casual Fridays, they enjoy Potty Mouth Friday where everyone swears like sailors. This was apparently such a resounding success, they also implemented Racial Slur Wednesday, followed by Repentence Thursday ("I'm sorry I called you a Hebe, man").
So yeah, it ain't exactly Corporate Challenge Country.
But yes, I'm lucky to be working on this contract because I basically have carte blance on how to build the application I'm working on for them. But therein lies the rub, if you can forgive a Shakespeare-quotin' Hillbilly.
Carte Blanche can actually be a scary phrase, especially when you're neck deep in Professional Development mode. Forthwith, a list of technologies and methodologies I originally considered for this application:
- TDD
- DDD
- WCF
- WPF/E (and now Silverlight)
- WF
- SharePoint
- ASP.NET AJAX
This doesn't include all of the development tools I also wanted to learn (or update my deprecated knowledge of) for the underlying code. To wit: Rhino Mocks (and mocking in general), NUnit, NAnt, NCover, Cruise Control, Spring, MonoRail, Windsor, and pretty much any other little doohickey that caught my eye in the last two months.
And keep in mind, I'm on a team of one stuck in a place where "development" refers more to how the government can find creative ways of giving away crown land.
So this morning's little epiphany is to scale back. This thing does eventually need to be deployed in the next three to six months. Yes, the deadlines are loose and yes, they'll be pretty forgiving but they are also putting out a healthy chunk of cash for this and will be expecting the same as any other client. To wit, learn on your own time and your own dime.
I'm sticking with TDD and DDD for the time being and probably ASP.NET AJAX for the GUI. Rhino Mocks, NUnit, NAnt, NCover are in but everything else will have to wait until after the first release or, more likely, an independent side project.
Kyle the Ambitious