Showing posts from April, 2007

Control Your Engine!

Imagine you’re building a car. You get car parts, including an engine, from various vendors [think COTS software] and different people help you put it together along the way [think contractors & subject matter experts across divisions]. You’re making progress – you have attached the wheels and can push the car through the product line [dev / test]. Now you’re reached the end of the product line. It’s time to start the engine and drive [pilot stage]. The engine turns but doesn’t start. After troubleshooting and double checking your work you find out that the engine [think messaging infrastructure] doesn’t work. The fuel tank is full [messages are sent from originator], the fuel line to the engine is full [message path is traceable], but the engine won’t process the fuel. When you ask for help from the engine integrators they blame the fuel line. The engine is the mechanism that makes a car move in a similar way that a messaging platform makes software components work together. The …

Design constraints

Nothing nullifies the effectiveness of a software architect more than project manager’s directive to design in three month increments for a system that will stay in service for 15 to 20 years.Not thinking about the future of a system is a sure way to guarantee unpredictability when it comes to the system quality attributes such as modifiability and extensibility.