10 tips on how to prevent business value risk
One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.
The content has been bookmarked!
There was an error bookmarking this content! Please retry.
Posted by Niclas Nilsson on Oct 12, 2007
Eoin Woods, one of the IASA Fellows has published an article about what he considers to be the top ten software architecture mistakes - mistakes that are too often learned the hard way. Brief excerpts of the ten points are below:
These look like requirements/system analysis mistakes.
IMHO, they qualify as "Architecture", but in several cases they are "System" rather than "Software".
Kit
IMHO, they qualify as "Architecture", but in several cases they are "System" rather than "Software".
Kit
Totally agree, provided that software architecture is two, technology/software architecture (like Anders architecting C# for example), and system architecture, as we all do in our custom solutions and products/properties.
What I'd say is that they're all mistakes made by software architects. And you're right, they're not all to do with design of the software structure. They include mistakes relating to requirements, design, technology, planning and analysis ... because these are all things that as software architects we end up being closely involved with.
Eoin.
I agree with Eoin, but another question pops up in my head:
What does an architectural mistake that is not related to requirements look like?
Kind regards
Niclas Nilsson
---
blog: niclasnilsson.se
DIY Security which Eion has mentioned is good example for an architecture mistake.
Other mistakes could include:
1) Workflow component Vs Database queries for building queues, inboxes
2) ORM Vs DAO Vs JDBC (probably not common nowadays)
3) Rich client (AJAX vs Webstart Vs Flash client) Vs Thin client
4) Spring POJO Vs EJB3
5) RPC styles - native (java remoting,JSON) vs XML
6) Vertical vs Horizontal scaling
and so on...
Obviously these are technology dependent (server, desktop, mobile etc) and context dependent (one is favorable over other based on requirements, maturity, standardization etc). But in general, i tend to think that major portion of architectural choices and therefore mistakes are to do with category/sub-category selection. (category: Rich client -> Sub-category: AJAX -> Vendor: DOJO)
I don't know if the proper term for this is "goldplating", or "over-design/architecture", the mistake is to use an architectural style without really considering why (probably due to mistakes #3 and #5).
E.g. I have seen projects where the architect wants to build an application framework before any application can be developed, but doing frameworks is hard.
And I have seen projects where the architect says: We shall have a layered architecture, and btw I have added a few new layers of my own, the developers must use all these layers, and in the end each layer just shuffles data back and forth.
I think I am becoming an advocate of just in time architecture, really.
Thanks for this good article with some common mistakes made on many software projects. I really liked the one about trying to fit too much on one diagram. I have done that one in the past.
+1 (I have this anti-pattern)
I don't think #4 is a mistake unless it is the ONLY representation you give of the architecture to your team and stakeholders. I find an all-inclusive diagram essential to fitting the entire problem space in my head and then expressing it lucidly to the team + stakeholders.
It is basically my mind-map of the solution being built. If you can't express that cohesively, you are likely missing key considerations for the solution - and that will result in #1.
Cheers,
Zubin Wadia
CTO
www.imagework.com
"Business Acceleration Through Process Automation"
Totally. Definitely a common mistake, particularly where people have new or "pet" technologies or patterns that they're determined to include. I just couldn't fit it into the list and keep the title ;-)
The most common architectural mistake I have seen is allowing technical architecture (concerns) to override business architecture (requirements).
Businesses then structure and limit themselves to support technology instead of the other way round.
Packaged software, by its nature, often introduces and exacerbates this problem.
> Packed software ...
IMO this one opens a whole new breed of errors, all of them rooted in attempting to architect the users' behaviour on behalf of a stiff system.
This mistake is "fixed" by applying a huge amount of management power.
See dilbert.com
> Packed software ...
Well said
IMO this one opens a whole new breed of errors, all of them rooted in attempting to architect the users' behaviour on behalf of a stiff system.
This mistake is "fixed" by applying a huge amount of management power.
See dilbert.com
One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.
InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.
Alex Papadimoulis discusses ugly code, where it comes from, how to avoid it, and how to get rid of it.
John Davies examines Visa’s architecture and shows how enterprises have architected complex integrations incorporating Hadoop, memcached, Ruby on Rails, and others to deliver innovative solutions.
Sean Comerford unveils ESPN.com’s architecture, what components are used and why, and the current changes the website goes through.
Are there repeated patterns of failure on Enterprise Agile Enablement efforts? Sanjiv and Arlen discuss Seven Deadly Sins to avoid when adopting Agile in an enterprise.
Erik Dörnenburg answers: What is Enterprise and Evolutionary Architecture?, discussing 4 issues: Turning strategy into execution, Ensuring conformance, Where do the architects sit? Buying or building?
Sean Cribbs explains what Map-Reduce and Riak are, why and how to use Map-Reduce with Riak, and how to convert SQL queries into their Map-Reduce equivalents.
14 comments
Watch Thread Reply