Friday, August 26, 2011

Keeping it simple

For some years now I have wrestled with the concepts around Enterprise Architecture and how these can be applied to a business. It is clear that the application is not straight forward and that there is something that is making this so.

I have argued for some time that what I truly need is a way of sketching and Enterprise Architecture in the same way as a traditional Architect sketches a building. The truth is though that the traditional Architect does not do one sketch of the building but many, from different angles and perspectives. This builds to inform the viewer about the building that he is planning. No matter what the angle though a drawing is really easy for architects and non architects alike to quickly comprehend.

In Enterprise Architecture this is most definately not the case. It seems that having no way of visualising the virtual world of computing has driven us instead to opt for complex stacks of paperwork to help us. If we are not really careful though these stacks of paperwork are simply ignored, even by ourselves. How many of us can quote all of our Enterprise domain principles from the top of our heads? These make up a realatively small amount of the documentation we produce. Is it anywonder that people with less committment to EA see it as a pointless exercise?

Unfortunately the Architecture frameworks out there don't seem to help much either. This is especially true as achieving a complete framework requires you to use combinations of the existing methods. For example whilst Zachman provides a way of classifying information it provides no process, whereas TOGAF to a certain extent is the opposite. Not only that frameworks like TOGAF are so flexible that it is unlikely you will ever get consistent uses of it.

All of this combines to make the use of enterprise architecture too complex and diverse thus stopping it from being as effective as it should be. As an Enterprise Architect I believe we must look to finding ways to simplify the way we present Architectures and make them more understandable to "normal" people if we are going to demonstrate our value.

Thursday, August 18, 2011

I am a name not a number

One of the problems inherent in the gradual merging of the consumer and business world is that companies can tend to focus on an individual when setting up computer systems. This makes it really difficult to separate the individual from the role in the event that they move on or change role within the company. This is particularly important when applied to temporary roles or secondments that have significant authority. I have seen situations where someone that has worked temporarily for the finance director has then moved to another location within the business with no changes to their account occurring.

Currently when I join a company I am given an account on the companies computer system, usually a staff number, a mobile telephone etc. Each of these has their own identity number used to access them so essentially even at the beginning I have multiple names. This is complicated by the fact that if I leave the company I may take my mobile phone number with me etc.

Now step forward to a world in which everyone is given an online identity at birth and that is their only account, effectively a unique on line name. This identity is used for everything telecommunications, electronic communications even access to public transport etc. Now when I join the company my unique name is associated with the role that I have taken up. All information and access rights pertinent to that role are delivered to me. I have seamless access to cloud and company systems that allow me to carry out that role but when I move on the role is assigned to my successor. Anything sent to myuniquename@mycompanysuniquename is directed to my role and thus I see it but via the role, this means my successor would also in archieves. In addition I see anything directed to myuniquename@myhomeaddress and from myuniquename@myfavouritehobby etc. but these would be directed elsewhere and not be available to any successor. Telecommunication would also use this same format rather than numbers with the method of communication being chosen by the initiator, ensuring that after you leave, phone calls to someone doing your old role will go to them and not you.

This is much more in keeping with our concept of the future, after all you never see people on science fiction programs trying to remember what account they used to access their computer do you? The techniques to provide this are available today, we simply do not use them because of tradition or because they make things more complex and thus more expensive. If we want a future where we are not bogged down by exponentially multiplying accounts though we are going to have to start giving this some priority.

Thursday, August 11, 2011

This week I have been involved in discussion about consumerisation and it’s effects on corporate computing. The interesting thing for me here is that IT professionals see a difference between consumer equipment and corporate equipment when in computing terms no such difference exists. The same computer that powers my sons obsession with computer games can happily deliver CAD drawings. His mobile phone is just as capable of taking phone calls and emails as any corporate Blackberry. In short consumer equipment can deliver corporate outputs (although not always the other way around particularly in the case of games).

There is really only one thing that forces us to draw the distinction and that is restrictions around the accessibility of the data that is on the devices. It is important to corporates that some data is protected, sometimes to an extreme degree as there can be penalties for leeking this data. This need not be legal penalties but can also be loss of reputation or just financial loss. IT departments are very aware of this an are tasked to prevent it and thus see corporate computing as different.

Consider though that it is actually important to consumers to protect some of their data too, sometimes also to an extreme degree. Penalties for leeking this data can be the same, loss of reputation or financial etc. The real difference is many consumers simply do not understand this whether applied to computing or indeed just ordinary life. I am reminded of the time Jeremy Clarkson printed his bank account number in his news paper column because he did not believe anyone could abuse it. Someone used this to make a donation from his account to charity and he soon realised the error of his ways.

So if both consumers and corporates benefit from the security why is it not inherent in all devices? Well the answer here is that it is starting to happen, I would argue that the iPhone/iPad environment is equivalent if not better than an average corporate computing environment. The devices are locked down, only run applications from an approved source and data on them can be protected and wiped if necessary etc.

The iDevice model is very much an old world device and application model as we are used to but there is also the Cloud computing model. Googles chromebook uses the cloud model to deliver services, which are arguably more secure than many business systems, and protects its hardware by keeping two copies of the firmware and checking one against the other to prevent keyloggers etc. from getting a foot hold.

Microsoft are not going to be locked out of this either though and their forthcoming Windows 8 will make use of an application store and provide similar features to it’s competition.

All of this confirms that the world of corporate computing and the world of consumer computing will inevitably come closer until there is no difference between the two. It will become as normal to have a computer allowance as it has been to have a car allowance, and combined with Cloud computing this will significantly change the current world of the corporate IT professional.

Thursday, August 4, 2011

Trial and Error

As well as selection of over complicated technology products there are other factors that may well contribute to the slow deployment of technology. As we have aspired to IT professionalism we have also potentially lost some of the factors that made us agile.


We have decided that we should get everything perfect first time, after all we specialise in this stuff don’t we? This is reinforced by the way we are treated by our businesses if even the smallest thing goes wrong. As a breed nothing is every good enough for an engineer in whatever discipline they work. We can always improve something and will do so if we are allowed to, even if that means starting again from scratch and missing deadlines. Add to this the threat of bite back should anything fail and projects take too long as we try harder and harder to make them perfect.

The evolutionary process that has lead to our own existence on this planet and then to all of our achievements makes use of the trial and error process. You try a few things discard the failures then keep the successes and try a few more things based on them. To improve our delivery timescale we need to be able to work in ways that allow application of trial and error.

In software development we have methodologies such as agile that allow us to use this process quite effectively. I have seen a number of significant successful software development projects use this to great effect. In infrastructure though this does not seem to be the case as large investments in equipment that don’t do what was expected is never going to be popular. Once again though there is hope on the horizon in the form of Cloud compute.

Spinning up a computer in the cloud to try out your new service costs you only the computing power that you use. If the service does not work then just turn it off again and stop paying, suddenly you are free to take risks. This potentially allows you to become much more agile in your approach to the creation of infrastructure. Not only that but successful trials can be scaled up within the same service into a live system, or depending on the services you are creating can be moved onto on premise equipment.

Of course software is a factor in here that currently confuses the picture. Whatever software you are putting on the Cloud compute infrastructure will need to be licensed correctly. This may well be a driver that helps certain open source products to proliferate as their licensing may better suit this agile environment, until the large software vendors work that out at least.