It continue to amaze me how willingly people offer their advice on software architecture. Most people would struggle to understand the inner-workings of email, but that doesn’t seem to stop them. And if they do have some experience with the topic – regardless of how long ago – some people think they are experts. I’d never give … Continue reading Everyone is (not) an architect!
Chris Aitken‘s article “Simplicity is the ultimate sophistication” had me intrigued and well worth a read. If nothing else to acquaint yourself with the described architectural principles and the idea of ‘principle assertions‘ – statements that are either ‘true’ or ‘false’ depending on whether the principle is evident or not in a given architecture specification. The Principle of … Continue reading Simplicity, Design Elegance and Architecture
You meet Bob at the local coffee shop. You don’t really know Bob, but one of your acquaintances suggested Bob after you casually mentioned your need for a new mobile phone. You checked out Bob’s website and you are fairly sure that Bob didn’t write any of the available material himself. At the coffee shop, you … Continue reading Bob, iPhones and software vendors
Everyone wants to be agile. It is the catch cry of the day, along with cloud computing, big data and payments processing. Agile software development boils down to do more with less, and communicate more with less. Do more with less is about using fewer but better suited tools to improve productivity. Communicate more with less is … Continue reading Conway’s Law and Technical Debt
“Never argue with stupid people, they will drag you down to their level and then beat you with experience”. – Mark Twain “The fact that you are entitled to have a stupid opinion does not excuse its stupidity”. – God
If you made a list of the “Top Five All Time Favourite” principles, then I’m sure “Buy Before Build” would be on the list. It just seems like one of those obvious statements. Why wouldn’t you buy of the shelf – proven – software to reduce delivery risk, outsource (non-core) software development, and gain incremental improvements … Continue reading If “Buy Before Build” is the answer then what was the question?
My latest article published in InfoQ discusses the difficulties of not only finding, but also modelling and evaluating architectural dependencies. You can read the article here.
“We use the waterfall methodology”. You can literally see the scorn on the developer’s face. No one wants to use the waterfall methodology. Except if you are a project manager, of course. They secretly prefer the waterfall, because it shows progression. All these agile iterations, rework, and daily stand-ups are difficult to fit into the … Continue reading Waterfalls don’t exist…
IT complexity is often described using metaphors such as “the big ball of mud” or the “software hairball syndrome” to illustrate a haphazardly structured software system. What intrigues me about these systems is their stubborn ability to morph into existence and their persistence. Almost all the companies that I’ve worked with over the years have at … Continue reading Why do we have balls of mud?
We often rely on metaphors and analogies to explain software, its structure and function. We cannot see software (except for its user interface), so we use metaphors to illustrate. It is true that we can print out the source code and look at it, but such static representation can mislead as far as the software’s true … Continue reading Is “architecture” the best metaphor?