Archive for the ‘architecture’ Category
It’s not what you do, it’s how you do it
Web architecture boils down to this “Its not what you do, its how you do it”
What I mean by this is that the web moves very fast and maintaining a competitive advantage is all about responding to the market and innovating, therefore its not so important what you do, this will constantly change and will be lead by the product managers not the architects.
Web design methods are created so that the company can very quickly launch, delete and modify a product. Which is great but this dynamic and reactionary approach to design introduces risk and drops quality.
So this is where the “how you do it” comes in. Essentially the right way to make it work is to have a very disciplined design methodology, supported by the right budget and a love of good quality engineering.
This can only be achieved strong leadership in the right culture.
The hidden cost of planned obsolescence
The postwar American industrial boom saw car sales take off. But by the time of the moon landings the car manufacturers had noticed that their sales were parked in a steady orbit and possibly were about to fall back to earth.
At that time the automotive industry attracted the most brilliant minds, and collectively they could not figure out why this fall in growth was happening. The most popular car manufacturers had complete control over the domestic car market, and yet their sales figures were falling. After some long and hard head scratching they realized that the reason for their poor performance was due to their past success.
The reason that sales had fallen off was quite simply because they had achieved market saturation. Everyone who wanted a car had a car. The only sales that the market leaders were making were due to the replacement of old worn out products.
As we all know shareholders demand growth and the market leading position was not sustainable.
So what was the solution?
Planned obsolescence
Quite simply the cars had to wear out faster so that they could be replaced faster and sales would start to rise again. Instead of engineering components to the highest quality they were machined to an adequate quality which caused them to expire in a known length of time. By today’s standards we consider this an environmental crime, however this practice and this method of controlling a market is a cornerstone of modern business practice.
Times and fashion change. Since the 80’s the ultrapreneurs and brilliant minds have been drawn into the world of computing. But people are not the only thing that has migrated to the world of computing many of the working practices of the car industry have also made the leap into cyberspace.
How long will my software last?
For the past 10 years computer developers have been toying with the Toyota production system, many of the principles of kaizen are behind google, facebook and other modern world engineering feats.
But automotive business practices have also found a place in the new world of computing. When you look at the releases of windows you will see that closed source companies are clearly using their position as market leaders to make the most out of the principles of planned obsolescence. All the languages, databases, office products and addon packs that they sell all have a shelf life. The next version of a computer language includes fixes for lots of issues, but in order for it to maintain a market leading position it must also introduce new issues. This may sound a little unfair to the big software companies but they are not the only ones, planned obsolescence is a part of the very fabric of the IT market. Step back in time just a little further and you will see that everyone is doing the same thing.
It makes good business sense that your software is just good enough – not great, but just enough to last a couple of years before you need to buy the new more stylish, more secure, more better upgrade.
Take software depreciation into account.
The next time you look at new software think about how long that software is valid for and take the upgrade cost into account. Lots of packages offer free upgrades but do they offer free upgrades to the latest version? If you deploy a Windows 7 license what is the cost of the inevitable upgrade to windows 8, 9, 10 … ? Will your servers be running Oracle 11 for ever? How much will it cost you to change your business processes, how much do your people cost you, do you have to train every time you upgrade? Do you have to rewrite your application endlessly?
Comparing open source to closed source
Many governments and enterprises are looking into opensource as a possible route to cut costs. And I have been involved in a number of conversations looking at just how much an opensource alternative really costs.
The reality is that the short term costs are roughly similar. However when you look at the long term costs the equation becomes very different and this is because of the hidden cost of planned obsolescence.
Designed to fail.
My point of view is that it stands to reason that license revenue model software is deliberately designed to fail. It’s just good business.
However the practice of planned obsolescence is not only anti consumer; wasting their time, resources and money, but it is also anti engineer. If an engineer makes something using components of a computer language that are designed to fail over time then their products will also degrade, effecting the longevity of their product and the amount of time that their product can be retailed for.
I am primarily someone who makes a living by making and selling software, and for me this is the most compelling argument for using opensource throughout the whole delivery chain.
The reason I support opensource is not because it saves me money … it makes me money.
3COMMENTS
MVC framework for PHP
I had a lot of trouble a while ago working with the MVC frameworks from other providers, they all seemed a bit too complex.
So … I made my own one.
Take a look I would love to know what you think?
MVC Framework for PHP
I am going t licence this under creative commons, so please feel free to play with this as much as you like.
0COMMENTS
Future software delivery model

Essentially, big businesses will rent a service, clever charging models will make the services attractive, for example
“If you rent Atos CRM we will reduce churn by …” or “We will give you our manufacturing service for free if we get a slice of the cost reductions …”
Services will be made of applications, but not as we know them, the apps will be clever mashups of different features from other applications and web services,
This whole layer will be very confusing with millions of interdependent services and features,
Ultimately a small number of massive massive cloud vendors will provide the hosting, there will be alternatives but they will be a bit flakey,
1COMMENTS
A rainy day for cloud puns
You IT and Computer professionals out there better watch out, your land is about to be invaded … by the amazonians.
On Tuesday I went to the Amazon Web Services startup event in the wonderful British Museum, for a five hour cloud computing pun festival. Here are some of the shocking attempts at humor that I recorded, more out of a perverse curiosity rather than recording the humor for posterity
Where do you go after the Planet … the Cloud
The Sky is the limit
You’ve got Clouded vision
Flying through the Clouds
The event was excellent, well run, great content and good bunch to network with. And because there was no alcohol I didn’t make a complete chump of myself. What I think Amazon have done that truly amazes me is how they have hooked up everything you need to make a media product with the existing amazon market place and sales tools needed to derive a revenue from it. Whats more they have codified all the processed necessary to make it happen.
There was an interesting audience make up of around 1000 in total, I counted down my row and worked out these percentages.
- 20% Suits
- 20% Business casual
- 10% Casual
- 2% Female
- 3% Bald
- 5% Flamboyant media types
Whenever I try and make, or launch something I dread the endless conversations with the operational team (Luddites more resistive to change than a glacier) to persuade them to commission a new box or worse still … change an old one. Well amazon have really thought about this, and have provided both a web UI and an API to do it. This means that I can get development code into production faster, and If I can do that … it means that I can either demonstrate that an innovation fails or derive revenue from it with a smaller expense (my precious time).
I do have a concern that this inevitable migration to large cloud providers will ultimately create an even larger dependency on a shrinking set of suppliers. In the end this is anti consumer, maybe its time for a state run or even UN owned cloud?
Note:
For those of you who are into sustainability, when someone asked the question “Will Amazon be using renewable energy sources for its servers” there was a big laugh and a stumped speaker.
2COMMENTS
What the heck is cloud computing?
This is my definition of what cloud computing is …
To define the cloud computing … it is
“Any feature that is delivered over the Internet where both the developer and user of the feature is abstracted from the infrastructure that provides it”
The early adopters of the internet almost exclusively used it for chat (mainly for swapping home made starwars scripts)
“The cloud” is the architecture notation of “a cloud” to represent the Internet. The use of the name is a nerdy in joke amongst web architects. In technical meetings over the past 5 years the answer to the question “where does [insert nameless feature] come from” has been “the cloud”.
People who don’t understand computers are in the majority and the cloud takes away all the pain of nerdy computer boffin nonsence such as flexibility, encapsulation, cost reduction, backup, DR, scalability, etc … When you put it on the cloud It becomes someone elses problem.
Remember Steve B’s famous Key note speach “Developers, Developers, Developers”.
This is why kids make facebook apps instead of java or .NET programs. when you develop against the cloud, its alot easier.
2COMMENTS
What the hell is cloud computing ?
The first common use of the Internet was essentially chat (IRC) and sharing homemade starwars scripts. Then came the world wide web and it was the world wide web that was static.
“The cloud” comes from the architecture notation of using a cloud to represent the internet. The use of the name is a nerdy in joke amongst web architects.
In technical discussions over the past 5 years the answer to the question
“where does [nameless feature] come from?” has been “the cloud”
What most people miss when thinking about the cloud is …
The people who don’t understand computers are in the majority and the cloud takes away all the pain of nerdy computer boffin nonsense such as “flexibility”, “cost reduction”, “Disaster Recovery”, “Scalability”, etc … these concepts are inaccessible and alien to the lay man. However many lay men are very creative have some good product ideas some of them are even good programmers.
When you put “it” on “the cloud” all the pain and trouble becomes an SEP (Someone Elses Problem)
This is why kids make facebook apps instead of java programs.
It is just more fun ! big organizations need to face up to this and work out how to commercialize their offering, with this new way of abstracting computer pain.
0COMMENTS
Essential reading list for the architect
This is the message in it hardcore engineering form.
Lots of small changes on the inside make a positive effect to the public impression
http://www.refactoring.com/
Enjoy doing it and apply it to a team, structure process and control, shared goals
http://www.extremeprogramming.org/
Clean, simple and disciplined.
http://en.wikipedia.org/wiki/The_C_Programming_Language_(book)
Use technology to work together
http://subversion.tigris.org/
You operate in a political world, it is only victory if everyone wins
http://www.chinapage.com/sunzi-e.html
Use convention over regulation
http://rubyonrails.org/
A good experience comes from both form and function
http://en.wikipedia.org/wiki/Helvetica
0COMMENTS
Architecture principles
To ensure the objectives and expectations of the project are achieved, try and use these principles in the design decision making processes.
- Re-use: Components of the platform that are already in place (e.g. components exiting in the manufacturing chain, etc.) should be re-used where possible.
- Integration: into existing infrastructure: The design should not adversely affect the existing infrastructure, networks or business procedures.
- Cost: To deliver a cost-effective solution which presents future opportunities for re-use and increased scope of operation.
- Openness: The design should be compliant to open standards where applicable in order to support flexibility and a modular architecture (reducing risk and cost of change).
- Performance: The performance of the design is important to the success of the service; it is a key factor to user satisfaction. The design should consider performance in the functional and technical design of each area and component.
- Robustness: The design should ensure service availability in the event of key component failure, the design must also offer a sliding scale of redundancy.
- Operability: The design should support robust and efficient operations management.
- Scalability: The design should be able to support short term increases in load (planned and unplanned), and long term growth in application resources.
- Presentation: The design should be documented and presented in a manner that is comprehensible to all stakeholders.
It is anticipated that requirements may change, evolve or even be de-scoped from the project brief stage to the point of implementation, however you must always endeavor to ensure business objectives are met from an architecture standpoint using the above guiding principles.

0COMMENTS