Showing posts with label Architect. Show all posts
Showing posts with label Architect. Show all posts

Thursday, May 29, 2008

The Danger of Thinking Grandly

There's a great article today on The Register - my favorite UK IT news web site. I love The Register because they cover so many facets of the IT world that I don't touch regularly myself[1], have a strong anti-Microsoft bias[2], and generally have a dry British sense of humor[3]. All in all, it's a good thing.

Today's article is on "Frameworks and the danger of a grand design" and should be considered required reading for anyone who writes code or builds applications. It's not rocket science, but it sums up quite nicely a bunch of lessons that I have learned through my own pain over the years. If you have also felt that pain yourself, you'll read the article and nod and smile. And if not, you may not quite get it, but next month or next year when you do feel that pain, you'll look back and say A-Ha!

So check out the article today: http://www.regdeveloper.co.uk/2008/05/29/grand_design_syndrome/

[1] Which keeps me informed on topics that I would otherwise know nothing about.

[2] Which keeps me honest, since I'm so firmly entrenched in the Microsoft world myself.

[3] Which keeps me amused.

Thursday, January 31, 2008

Taking off the BI Hat, Putting on the Toque

You probably already know that I'm going to be presenting three SQL Server sessions at next week's MCT Summit event in Redmond, Washington. But now I'm going to take off my BI hat and put on my Toque. That's "chef's hat" for those of you who may not follow the culinary world as closely as you follow the world of database.

Why would I do this, you ask?

Because I'm going to be presenting a surprise fourth session next week as well:

Test your Metal – Software Architecture Case Study – TechEd Iron Architect
MCT Matthew Roche won Microsoft's Iron Architect contest, defeating all competitors in a head-to-head battle of software architecture and design. In this session Matthew will present his winning solution along with the decisions and thought processes that went into his final design. Attendees will participate in an interactive discussion of software architecture, how to incorporate architectural topics and themes into developer classes, and perhaps how to become the next Iron Architect themselves.

Sound like fun? The Iron Architect contest was one part Iron Chef, one part American Idol, and one part architecture. If you're a developer-focused MCT who is interested in deeper architectural topics, I hope I'll see you in this session. I'm hoping to make it as interactive and dynamic as possible, and I know that it will be a lot of fun.

And the octopus ice cream will be delicious!

Friday, December 21, 2007

Design Conflict

I had a dinner meeting a few weeks back with some members of my development team at work (including the new VP!) and one of the topics of the discussion was that of team dynamics. I've found over the years that the most successful teams are teams of "invested equals." Invested because people only give their best when they think that they can make a difference and when they know that they'll be rewarded, and equals because people (for some strange reason) tend to do what their bosses tell them to, as opposed to pushing back and demanding that their voice and their ideas be heard.

As part of this wonderful dinner conversation, I told a story of how Ted Malone (who still claims to not regret recruiting me) and I were both attempting to come up with a design for a vital new application component. He presented his idea. It was so wrong. I presented my delightfully well thought out idea. He failed to see its beauty. (Please keep in mind that Ted may have somewhat different recollections of this morning.) So we dueled, whiteboard markers at dawn, as it were, and by the time the dust had settled the resulting design was more complete, more elegant and more satisfying than anything either one of us could have come up with alone.

Which brings me to a quote:
"A design that comes out of an argument is always better than a design that comes out of a committee."

Believe it or not, this is actually my own quote. (I'm not usually nearly this pithy, and am forced to quote the brilliant people around me.) It's been sitting in the back of my brain for the last few weeks, waiting for a chance to come out again.

And that chance may well be on the horizon. I've been involved in an email discussion with our CTO (who may well have the biggest brain on the planet - this guy is scary sometimes) on how we may be able to apply Microsoft BI technologies to solve some very interesting (and by "interesting" I mean oppressively difficult) problems in the configuration analytics space. The opportunity I see ahead lies in the fact that I’m the type of person who needs a real, concrete problem to look at and to wrap my brain around. Then I can step back, generalize and come up with an abstract “problem domain” that represents the whole problem to be solved, of which my concrete example was only one instance. But I need that one concrete instance in order to begin.

Dennis, on the other hand, is the type of person who always thinks in abstracts. (Or in any event this is the impression I've gotten; I honestly haven't asked him. Yet.) He always has that overarching “big picture” in mind, and even though he can drill down into the little details at will, that’s not how he looks at the problems natively.

So Dennis and I have some whiteboard time scheduled for next month. My brain is almost literally salivating (yeah, picture that one) at the thought of the mental duel that lies ahead. Bring on the conflict!

Friday, June 8, 2007

Victory!

Well, the Iron Architect competition at TechEd 2007 is over - the final showdown (with tasting and judgment) took place Thursday evening, and in the end I emerged victorious.

There were four contestants in the final showdown, each one of whom came up with an architectural proposal for the same problem posted on the MSDN Iron Architect Blog. Each contestant had a very different approach. My architecture was based on using SQL Server Analysis Services Data Mining as the core engine to segment and categorize attendees and to define relationships between new attendees during the registration process and the existing registered attendee base. This core engine would then be implemented as a discrete service that would then interact with external systems (such as the conference scheduling systems and the hotel registration systems) via BizTalk Server.

The competition was pretty fierce. I went second, and although I thought I did a better job than the first and third contestants, but the fourth guy started out really strong, focusing on the build vs. buy decision, which I had not considered at all. Still, in the end the judges (who were delightfully critical - I love getting critical feedback!) thought that my solution and my presentation were strongest over all, and awarded me the grand prize.

Of course, although this content was stressful, the hard work is now just beginning. The prize I've won is basically a scholarship to get accepted into the Microsoft Certified Architect program. Now I have to do all of the work for the MCA, and from what I hear, that's far from trivial. Time will tell, and I'll be sure to post about it here...