Even though I sold it some years ago, I still reminisce about my old Kentish Town flat so what was great about it? Well, firstly it was spacious. Downstairs was completely open plan so given that I didn’t overfill it with furniture, there was a real feeling that you could definitely swing the proverbial… Secondly, it was bathed in light as the back windows were wide, floor to ceiling affairs that opened the flat to the world (don’t worry, I had curtains). The final great feature was not inside the flat but outside. Access to my first and second floor “maisonette” was via a secure doorway, stairs (with a lift for the lazy) and a balcony/terrace which again opened the flat to the world as well as encouraging neighbourliness. Once through the security gate and main door, things were fairly open and security wasn’t in your face. I thought the developers were a bit rubbish so how did they build such a great place?
When building homes, for the majority of people, there are some fundamental principles. Before we get to deciding between Smeg and Miele, creation of space (whatever the external constraints) and maximising natural light will always be desirable. Similarly, flexible, non-oppressive security will be another winner. The same is true in building good technology; in parallel with reflecting specific requirements, there’s a set of principles to which almost all systems should adhere. It should be easy to move around into areas that suit our inclination without constantly meeting obstructions. We should also be able to benefit from natural illumination wherever we are… re-phrased, our way should be enlightened with knowledge as we go. Finally, while security becomes ever critical as more of our lives are lived online, we don’t want that security to be so oppressive that our use of the technology is impaired.
I’d venture to say that if we applied just these three principles, our tech would be much, much better. Easy navigation and having the right context (relevant information) can both be established by the adoption of a technique that I think is really, really strong. Object modelling, user conceptual modelling and business entity modelling are all monikers for a technique that identifies, defines and then embeds the things with which we interact. I’m not talking about normalised entities or implementation classes but the real things, be they physical or conceptual, that are all around us. In a financial situation, I have an account that I use to purchase goods from particular merchants (Account, Purchase Transaction, Product, Merchant). In a travel situation, I walk to my local station to catch a train that will take me to the shops (Station, Journey, Train Service, Location).
The beauty of these things, is that once identified, we can define them in a natural way and this definition can be shared with the technologists allowing them to implement equally naturally. I’ve mentioned account, I’ve said that I want to be able to credit money to and debit money from my account; and I’ve called out the different characteristics of my account (balance, transaction history, facilities, regular debits, etc). I’ve also said that I want to be alerted if there are any strange debits. Given that I’ve gone to this trouble, I want it to be really obvious, when I’m using the technology, how I get to my account and really easy to access and do the things I’ve said. So, as I’m making a purchase, for example, it would be really cool if I could see my balance after the transaction and what my overdraft limit is.
Behind the scenes, these things are used extensively. As well as determining the structure of user interaction (accessible spaces, illumination), these things provide information definitions that can be normalised to generate data models and they outline the default set of services for our service architecture. This is particularly helpful in agile development as we have a single model that can be used throughout our project without the need for repeated translation. Translation is not a bad thing but the more translations we have, the more effort we expend and the more likely we are to make a mistake.
“… and what about security”, you ask. Does Object Modelling help with creating unobtrusive security? My location may not be a big secret but my changing locations over a period of time may well be personal and sensitive. Therefore, in deciding how to control access to information, context is key. Object Modelling supports the design of unobtrusive security by identifying the different contexts, the characteristics mentioned above. If access to information is linked to these characteristics, access control can be simple and flexible.
Object Modelling can help us to build spacious systems with lots of light and flexible, unobtrusive security. It’s a key technique in our approach to accelerating technology enabled change.
