Thursday, April 08, 2004 - Posts
Whew, my head is spinning from the WeProgram.Net presentation by Wintellect co-founder John Robbins. He didn't dazzle us with secret code snippets or tools that reveal the keys to .Net. Instead, John Robbins spoke passionately about what it takes to produce quality software that's on time and on schedule. I've heard others speak on similar topics, beating various methodology drums, but none had the gusto that Robbins demonstrated. His anecdotes (based on broad ranging experience ) and no-holds-barred approach were exceptional and Darrell and I both wished wish we would have taped the talk because there was that much good stuff in it.
Just a few memorable quotes include:
- “Customers don't buy ISO-9000 docs, they buy quality software completed on time“
- “Everyone has to stand at my status meetings -- they're only going to last 15 minutes at the most!”
- ”I put the CS Majors at the bottom of the stack when I'm looking over resumes”
- "If you're not in the business of producing bug-tracking software, why are you rolling your own solution and wasting your time? Use a quality product (Bugzilla is even free) and stay customer focused."
It would take too long to explain all the above, so I'll let you wrestle with them. He went on to share some of the guiding principles of Wintellect development and impressed the heck out of me with his vehemence. I can see why he co-founded Wintellect! Very impressive.
After reflecting on it a bit further, he was getting into processes and steps to support developers in their pursuit of building better software. That's also what this whole .Net stuff is about -- increasing programmer productivity and producing higher quality software. Not to get too academic on you, but I did study a lot of Eastern religion in undergrad and faiths like Hinduism and Buddhism have this notion of profound and divine truth known as dharma. John Robbins was sharing the Dharma of Development -- whether it's winforms, web services, and no matter your language (even the non-.Net ones!), we all share in the development process at our organizations and owe it to ourselves and our customers to produce high quality product!
We'll be posting the powerpoint presentation from John's talk next week at www.WeProgram.Net -- but the powerpoint is only a fraction of the dharma. I know John Robbins will be talking at the series of Devscovery conferences coming up, so check out what he has to share. If he's always as thought provoking as he was at our user group, you'll not want to miss it!
Happy .Netting!
Aren't those days great when everything works together and all your hard work pays off?
We got a rush customer requirement earlier this week and took it from analysis (a little visio and a lot of consideration), to SQL Server (where we created the tables, to CodeSmith (generated the objects from the data model), and then snapped the objects together with a little business logic and a few screens; now we're testing an alpha version of it all. CodeSmith is particularly handy here because our framework at OptimizeIT performs the CRUD operations on our objects so long as certain interfaces are adhered to -- CodeSmith creates our implementation of the interfaces from the data model. I've already sufficiently gushed about CodeSmith in an early post, so I'll drop the topic.
It's great to see things come together like this. We're doing initial testing on the enhancement and can probably deploy something next week.
Microsoft ObjectSpaces (part of the .Net 2005 plan) addresses the same issues our framework does at OptimizeIT. From what I've read, ObjectSpaces will take entity frameworks to another level. I'm curious to see how Microsoft packages ObjectSpaces -- is it treated like the Application Blocks (supported, open-source code that supplements the .Net framework and makes life easier), or is it bundled into the .Net framework itself in a System.Data.ObjectSpaces namespace? There's also lots of room betwen these two extremes, but let me point out that the .Net framework already contains 1,000s of classes and is intimidating to the new developer . . . framework complexity and bloat must certainly be a concern for Microsoft. Can my GAC handle it all?
Happy .Netting
Martin Fowler of Refactoring fame (and I follow his blog -- although he calls it a “bliki“ as a cross between a blog and a wiki) maintains a site devoted to Refactoring at www.Refactoring.com (clever name, huh?). The catalog section describes the refactoring “recipes“ he details in his book -- I highly recommend his book on the topic, as it builds a shared vocabulary for describing these formulas for improving our code. The catalog descriptions are terse but convey their points well . . . maybe WeProgram.Net could do a Refactoring-of-the-Week sort of segment on our site. Any volunteers?
| As an aside, one thing I'd like WeProgram.Net to do more of is provide site visitors with a reason to come back other than to check our event schedules. We've got the latest blog posts from our members via RSS, which is a nice window to these blogs, and our presentation materials are good, but we could do much more. |
In March, Steve Metsker (no blog that I know of) and Darrell Norton presented to WeProgram.Net on the topic of Refactoring. It was an excellent session and I highly recommend groups use hands-on exercises to complement presentations . . . our user group strives to “stick to the code” and avoid the high level generalizations that can water down topics. In a large group, the hands-on part might get disorganized but if there's any way to make it happen do it because there's no better way to learn something than to apply it!
<plug shameless=“false“>Since I'm on the topic of User Groups, WeProgram.Net is hosting Wintellect's co-founder John Robbins tonight at 6:30 at ESI in Newport News. His latest book, which I think we'll be giving away tonight, is very popular.</plug>
This a rambling sort of post. Maybe I should refactor it into 2 seperate blog posts using the ExtractClass method?