OdeToCode IC Logo

You Want To Be An Architect?

Monday, January 24, 2005 by scott

I was flipping through SDTimes this week and came across the article “Turning Architecture Into a Profession”. The Open Group intends to begin a certification program for software architects.

“While declining to discuss specifics of the program just yet, de Raeve did say architects will have to show they have a body of experience and that they’re capable of deploying an as-yet-undefined set of skills in the delivery of systems architectures in real-world situations. Among those skills are communication, conflict resolution, architecture modeling techniques, and the ability to apply methodologies and elicit shareholder requirements, he said.”

Hmm, conflict resolution.

Do you think there will be a standardized test?

I wonder what such a test would look like…

 

Section II: Conflict Resolution

Please review each question carefully and select the single, best answer available.

1. Harry says the company needs to standardize on a language with curly braces. Fred says he hates curly braces, and is in the parking lot with a screwdriver threatening to flatten the tires of curly brace fans. What do you do?

a) Give Fred more screwdrivers.
b) Get your car safely out of the parking lot while dialing the police.
c) Take Harry and Fred to lunch and discuss the aesthetics of braces.

2. The CEO has barged into the office demanding the company’s flagship product be “SOA compliant” in time for the next tradeshow. What do you do?

a) Call in a consultant.
b) Have the CEO buy lunch and discuss.
c) Tell the CEO you can get the software to level V SOA compliance, but you'll need a bonus.

3. Jill says the opening curly brace goes on the next line. Jack says the opening curly brace stays on the same line. What do you do?

a) Call a meeting and take a vote.
b) Adjust Jack’s thinking with a heavy, blunt object.
c) Switch to Python

4. Harry refuses to work on the new project because it’s not using domain driven design. Fred is threatening the tech writers with a screwdriver. Jack refuses to write unit tests, and Jill says your architectural diagrams look like the work of a five year old. What do you do?

a) Something is wrong? This is a good day.
b) Start a job search.
c) Lock the door and reach for some of the liquid stress reliever in the bottom drawer of your desk.

This concludes Section II.

P.S. The correct answers were B, B, B, and B.

Source Control Cost Me $1.2 Billion

Friday, January 21, 2005 by scott

Perhaps I've overstated the title for dramatic effect, but as a taxpayer I've certainly donated some amount of money to failed software projects for the U.S. government. I’d be curious to see a post-mortem report on some of these projects to hear what went wrong. I’m sure the list could go on and on.

Of all the agencies though, certainly NASA has the toughest job. I mean, you forget to put one tiny file into version control, and oops, $1.2 billion down the drain. I write about this story in the latest OdeToCode article - “Source Control: A Primer”.

The NASA story came to mind this week when I interviewed some candidates who work for consulting shops. Not only did one or two never use source control, but they asked what purpose it served. Hopefully, the article will reach out and touch a few people.

An Ad, a Thought, and a Threat

Tuesday, January 18, 2005 by scott

Ad for the day

When I first heard of an open source project by the name of DotNetNuke, I really thought I’d be looking at the source code to a first person shooter. As it turns out, DNN is everything one needs to run a website. Now there is a book dedicated to DNN ready to hit the market from my friends at Packt Publishing.

Thought for the day

I was listening to a Stephen Hawking recording during the commute today and he said: “Imagine now a star with the mass ten times the mass of the sun”. I tried. I failed.

Threat for the day

One more burst of comment spam and this blog gets a CAPTCHA control. Any objections? Any alternatives? Who are these people and why can't we stick them with sharp pins?

CLR & OS Independence

Monday, January 17, 2005 by scott

A storm brews on the distant horizon around the delivery of Longhorn and the Future Of of Assembly Versioning. Rocky Lhotka and Kent Tegels feel the versioning strategy coming down the road will stagnate Microsoft’s version of the .NET runtime. I wasn’t too alarmed by the article on the ServerSide.NET for a few reasons.

First, to some extent, development life on Windows has followed this course and thrived for sometime. The Win32 API has been the foundation of the platform and changes come relatively slowly with major OS releases and service packs. On top of the API assorted runtimes and frameworks (like MFC and the VB runtime) made developers more productive by encapsulating and enhancing the platform. These platforms could provide some amount of innovation, but major revolutions were almost impossible without support from new features in the underlying platform. It’s not always a bad thing to say the foundation is stagnant, though. After all, I wouldn’t feel comfortable if System.Object were sprouting new methods every year.

Secondly, I know what you might be saying: “Just because it’s always been that way doesn’t mean we can’t have a better solution”. Yes, this is true. In fact, the above approach is the approach in theory only. In practice, changes come as needed and when the demand is present. Remember the NT 4 Option Pack? The option pack shoehorned a distributed application platform (IIS, message queuing, transaction server) into a one year old operating system while Windows 2000 was still cooking in the oven. How about the foundational pillar of Longhorn known as Avalon that suddenly appeared on XP machines around the world?

Finally, wherever Microsoft stagnates, competition finds a niche. Just look at Firefox and search tools over the last 12 months. Competition forces Microsoft into innovation – and they always find a way to stay competitive. The competition in the common language runtime arena is here already. I'm not worried yet.

CSS & Me

Friday, January 14, 2005 by scott

Every so often I take a look at an application and think, hmmm, with a couple tweaks I could have this UI looking really nice, but when I go to check-in the style sheet changes I realize I only have read-only access. Then I remember - after my last set of tweaks they revoked my commit privileges on all css files. Sigh. The measures people take when they don’t agree with your sense of color and style.

Over the years I’ve recognized the flexibility style sheets offer, and I’ve designed (in the architecture sense) with css in mind. Still, I’ve never felt completely comfortable with css, partly because I have nightmares of looking at bug tracking entries circa year 2000. You know, the entries that look like “Fonts are offset 1 pixel to the left on browser version 4.35.7654.2 when system time between 1300 and 1315 hours.”. Since one big customer has an affinity for browser version 4.35.7654.2 it’s time to tell a dev to work around another CSS quirk and re-test on 18 browser versions. Today, Google turns up over 300,000 hits for “yet another css bug” – yikes.

Another problem is digging into the CSS files someone else wrote. It can prove difficult to piece together what I’m seeing on the screen with the styles in a css file. A great tool to help put this type of puzzle together is the web developer extension for FireFox. Is there anything comparable for IE?

Finally, CSS files never seem to shrink – they only grow bigger. New styles are added, old styles never disappear. Someone needs to write some sort of refactoring / optimization tool for CSS. Or have they already?

Not that I’d be able to use the tool, seeing as how I’m banished from styleland.

Course I do have the admin password to use in a pinch….

Presentation Next Week

Wednesday, January 12, 2005 by scott
January 18th is the next meeting of the CMAP user group in Columbia, Maryland. I’ll be walking through more code and architecture for the Community Starter Kit, and I promise not to show any more corny videos of man beating computer for comic relief.

Python

Tuesday, January 11, 2005 by scott
Python has been popping up in my newsreader quite often these days (see Darrell’s 'Why Should You Learn Python?' and Sam’s 'Key Observation…').

I have fond memories of Python. I was working with a company building middleware for online multiplayer gaming. We had working demo games to exercise the framework, and I used Python code to control the behavior and actions of non-player characters (NPC) in the demo. I hesitate to say what I wrote was any sort of artificial intelligence, it was more like a script for NPCs to follow, but it made for great conversation outside of work.

Me: How was your day?

Friend: Oh, not too bad. A computer bug wiped out some financial records, but nothing we can’t recover from.

Me: Oh, let me tell you about bugs. I’ve got these wolves, see, and they are supposed to chase down and eat the pink rabbits before the rabbits hop away from the campground area, but let me tell you - it’s not easy. Some of my wolves are plunging headfirst into the campfire, and others are wandering off into the mountains never to be seen again.

Friend: You need to grow up one day.

Ah, the things one has to think about when developing a game.

   How do you let a user know they are running low on grendades? (Halo 2)

   Is that an icon in your shorts or are you just happy to see me? (Sims 2 - scroll down - rather funny)