Showing posts with label innovation. Show all posts
Showing posts with label innovation. Show all posts

Tuesday, 19 May 2020

Untangling Governance Definitions - Patterns, Blueprints, Templates, Standards and Reference Architecture

By Aiden Gallagher & Peter Reeves

*Disclaimer: These are our own definitions and might not map to your specific organisation. And, of course, these are our own opinions, and not necessarily those of our employer

Introduction

For the last few weeks, Peter and I have been talking about Integration Patterns, blueprints and architectures to try and boil down a common definition which we can use when talking about these concepts.
We found that halfway through a conversation we would start merging elements and classifying the same integration item as different things.

To remedy this, we decided to write down the definitions as a reference point that we could refer back to. In this blog post you will be able to see these definitions, and when we talk about Patterns, Blueprints, Templates, Standards and Reference Architectures you will know what we mean too.

Why do we care?

Before we share the definitions, it’s important to know why we care about the words themselves. We want to be sure that when we are discussing concepts that we are all referring to the same things and in the same way, related to how artefacts fit into the wider organizational picture and the correct governance procedures when designing systems.

Definitions

Below you will find our definitions and with them an example of how these are applied outside of the computing world. In this example, we will apply them to a housing project and “dwellings”.

Pattern

Definition – A pattern is a refined repeatable concept which is a solution to a common problem.

Example – Given the common problem of a human needing a place to live; have a roof over our heads, running water, sanitation, heat and the ability to cook, a pattern standardises the way we build a ‘dwelling’ that acts as a solution to these problems.

Blueprint

Definition – A blueprint is a detailed design for how to implement a pattern using a certain technology.

Example - A blueprint of the dwelling pattern could be a terraced house which provides dwellings against a limited land space. It could also be a bungalow which provides accessible dwellings for those who cannot use an upstairs.

Templates

Definition – A template is an implementation of a blueprint with further details on the specifications for items of that type. It might be followed exactly, or it might be altered to fit the need of the circumstance.
Example – A terraced house in Darlington was previously built with certain specification. The designer wants to provide more garden space as such they can tweak the template of a terraced house during design. But the template largely remains the same.

Standards

Definition – Standards are an approach, design or method that is applied across all interconnected systems and applications to ensure consistency of approach, and this benefits support, testing, and development.

Example – The plug sockets in all houses are the same size, as that meets the requirements for the majority of household appliances. This means all devices are interchangeable, which in turn means less customisation during build and hence is cheaper to build and more convenient for the end users.

Reference Architectures

Definition – A reference Architecture is a set of documents or information that describe a topology or system that can be used for common and related patterns. The information, if followed, will provide commonality across deployed templates and blueprints.

Example - A large plot of land is bought for building development requiring sewage, electricity, water, gas, and road network. A reference architecture describes how this infrastructure can be setup to accommodate different home styles (patterns) the instructions for building each home (blueprint), and potentially any customisations to the blueprint to fit other requirements (templates, and templated usage). Throughout the whole build process the same style of roofs, doors and windows are purchased (standards).

Integration Example

In the integration world we might apply the above definitions to the following use case.

A hybrid-cloud deployment strategy has been documented which shows how availability, disaster recovery, networking, and deployments of servers, and various business functions might be achieved in a reference architecture for that system.

The cloud deployment has a number of topologies (or building blocks for topologies). These are used as necessary to build integration patterns (e.g. request-reply which needs to solve some high-level problems like: access to a database, transactionality, reliability etc.)

Having selected the reference architecture which will support specific patterns, a blueprints to implement desired patterns using those cloud offerings can be written by the organisation – this could form a high-level design of how the new system will look like, this is further refined and customised in the low-level design. 

Looking at a Hybrid Cloud implementation, there are some orchestrated deployments packaged as part of a cloud offerings to solve specific business needs, which is in itself like an off-the-shelf blueprint combined.

To build the system, a series of templates are used for each cloud product with necessary minor tweaks that meet small nuances of the pattern and blueprint requirements. Throughout all these processes the organization’s standards are used to ensure naming conventions are the same, disaster recovery can be performed by any of the support teams, that port mappings follow the same style for easier communication with the network teams, and any other core business procedures are followed.

The end result is a system that was built quickly, in a reusable, extensible, and familiar way and that is now supportable by the wider organization.

Benefits
By using Patterns, Blueprints, Templates, Standards and Reference Architectures there are obvious tangible benefits:

Standardisation

·      Less complexity when implementing solutions as everything is known.
·      Cost reduction of multiple teams solving the same problems repeatedly (why reinvent the wheel?)

Reusability

·      Once the patterns, blueprints etc. have been shaped and refined, it becomes easier to reuse them than to start the building process from scratch- saving time and energy exponentially.
·      They are easy to use.
·      They are easy to deploy.
·      They are easy to support.

Familiarity

·      There is less project-specific knowledge required when people switch roles as the core patterns (and blueprints) are the same.
·      Individuals are able to get the 'gist' of what is happening in a new project- even for customised docs, build etc- because everything looks and feels the same and was built with the same principles, even if the low-level implementation is slightly different.
·      This familiarity makes it easier and quicker to fix, debug and test new projects.
·      This leads to a reduction in dependencies on individual resources.

Future Proofing for the whole Organisation

·      Improving the pattern by one team improves for all.
·      The whole organisation is carried into modern practices together because of the usage of patterns, blueprints etc.

Limitations

There are some limitations to the usage of Patterns, Blueprints, Templates, Standards and Reference Architectures which tie closely together:

Complexity

·      Sometimes complexity is required, maybe because something has never been done before, or there are new nuances such as security regulations that make a solution difficult to implement using existing patterns.
·      Trying to fit the patterns into these use cases might cause more harm than good e.g. over-engineering, barrier to release time, tendency towards “You aren’t going to need it” (YAGNI) behaviours and a bloated system.

Blocker to change

·      It can be hard to change a pattern because it’s a known entity which people are familiar with. The pattern then becomes a tool to block improvements.
·      It can be hard to get change because the benefits of a new system might not be understood by the wider organisation who must accept these changes.
·      Patterns become tied to governance process. This can undermine the governance process which can be deemed as ‘red tape’.

Stifling Innovation

·      Working only to the pattern can stifle the creativity which comes naturally to a lot of people in an organisation. This means that the pattern and its prescriptive, restrictive methods can lead to a lack of innovation and improvements.
·      It can be hard to get investment for new ideas because there are no any proven benefits, which is perpetuated by a lack of ability to improve existing patterns.

For all these limitations, it is possible with good organisation practices to be able to work around these requirements. This might be by encouraging minimum viable products (MVPs), allowing colleagues to use new tools in their day to day life, and having governance process that look to solve organisational problems and ongoing reviews of current business processes.

Conclusion

In this blog post, we have given our definition of Patterns, Blueprints, Templates, Standards and Reference Architectures, along with a real-world example and a computing example alongside an exploration of the benefits and limitations of using them.


Have any thoughts? Do you vehemently disagree with our definitions? Have a better computing example?  Get in touch to tell us what you think

Wednesday, 9 May 2018

Integration Innovators - Part 1

**Note: Any images, text or quotes have been used to provide an overview of the people themselves. I have linked to the relevant sources in the read more, but will gladly remove any part should the subjects or original authors so wish.**

In the last 18 months I have been constantly seeking to get a better understanding of the technologies I work with every day from databases, to Ethernet, to the first compilers, message queues and the underlying network they run on. The list is never ending and what started as a few pages of notes has turned into maybe 30.

What has begun to interest me more and more are the people who brought about these changes, the work they have completed across their lives and the impact it has had on the way we live and the way we do business.

In this post I intend to describe some of the people who I have ‘discovered’ in my research in a hope that my own generation do not forget those who progressed the computing technology that can often be taken for granted. 

Here are a handful of them, in no particular order;

Abhay Bhushan

1.    Abhay Bhushan was born in Allahabad, India in November 1944 and was in the first group of students to attend the Indian Institute of Technology Kapur (IIT Kapur) which was at the time being funded by a consortium of universities including; Berkeley, Princeton and MIT. 

It was at the university that Abhay met mentors like William Schreiber and Harold Huskey who had worked on some of the first ever TVs and computers inspiring him to take up a role at MIT after his graduation to complete his master’s degree.

It was over the next 5 years 1965 - 1970 that Abhay became involved with APRA and APRANET, even attending a meeting at the pentagon for the Defence Advanced Research Project Agency (DARPA) to discuss communication security before getting involved in the Network Working Group whilst working on his MBA at MIT.

It was in one of these meetings where Abhay took the ownership of “a file transfer protocol” having been working with Steve Crocker, Jon Postel, Mike Padlipsky, Vincent Cerf and many more. The group would discuss, build, test and write Requests For Comments (RFC’s) working on a whole host of networking solutions such as TCP/IP, FTP and the email address with different members being tasked with the write up.

FTP - for which Abhay was the author - went on to be the foundation for pushing files from one system to another whether that’s sharing information across branches, uploading to your blog, or to share files securely. It has been expanded, updated and built upon but FTP remains a huge part of the computing world and Abhay is recognised here for his part in it.

Read more: https://tools.ietf.org/html/rfc114https://www.mappingthejourney.com/single-post/2017/09/15/episode-9-interview-with-abhay-bhushan-author-of-file-transfer-protocol/https://www.scmagazineuk.com/ftp-comes-of-age-as-considerations-made-on-how-practicality-is-over-riding-security/article/560138/

Grace Murray Hopper
2.    Dr Grace Murray Hopper was born in New York City December 1906, gaining a BA in Mathematics and Physics in 1928 before achieving both her MA and PhD in Mathematics at Yale University.

From a young age it was apparent that the budding mathematician had a drive to discover, taking apart the family alarm clocks at age 7 just to see how they worked. The same drive saw her through university and her PhD, despite being only 1 of 10 students on a doctoral program of which only 4 were women.

It was this drive that also led her to take a leave of absence from teaching to join the US Navy as part of their Women Accepted for Volunteer Emergency Service (WAVES) program where she graduated first in her class and gained the rank of lieutenant, aiding in the war effort by working on the Mark series of computers.

Working on and off for the rest of her life in the navy, research positions and as a consultant she filled her days with innovating, teaching and thinking outside of the box. One such innovation was her belief that computing could be further used and more widely adopted if it could be written in a human readable way.

She went on to create an operational compiler at a time when many believed that computers couldn’t - or indeed shouldn’t - communicate in English. Instead, she pushed for its use in business tasks like billing and payroll calculation. Later the FLOW-MATIC compiler she had worked on became the basis of COBOL, a language used by up to 80% of all code in existence including in the Navy whom Grace persuaded to adopt the new language.

Whilst this extremely brief summary does not skim the surface of this inspirational woman, her contribution to the world of computing has been phenomenal.

An interesting fact is that Grace Hopper was the finder of a moth in one of the early computers which was causing chaos on the system itself. This later led to the widespread use of the word ‘bug’ to mean a fault in a computer.

Read More: Grace Hopper and the invention of the Information Age (Book) http://www.amazingwomeninhistory.com/amazing-grace-hopper-computer-programmer/http://www.cs.yale.edu/homes/tap/Files/hopper-wit.html

Roy Fielding
3.    Roy Fielding was born in 1965 (same year as my mum and dad) in Laguna Beach, California and describes himself as “part Maori, Kiwi, Yank, Irish, Scottish, British, and California beach bum".

Whilst the youngest member of the five being discussed, he was accredited as one of the top 100 innovators around the world by an MIT Technical Review in 1999 for his work on Open Source projects like Apache Group - of which he is a co-founder - and his work in 1994 when he innovated the web by creating procedures to update web page storage by transmitting information only when a change had been created.

He later began work with Tim Berners-Lee as part of the WWW Consortium (W3C) helping with standardisation of WWW protocols being an active member of several working groups such as HTTP, HTML and URI.
Most notably would be his contribution to the world of web services in 2000 with his dissertation thesis for his degree as a Doctor of Philosophy in Information and Computer Science at University of California, Irvine. 

In the dissertation, Roy discussed the idea of Representative State Transfer (REST) architectural styles and how they can be used in web services specifically by using interoperable, stateless operations such as GET, PUT and POST. 

The RESTful architecture came to be used massively in SOA implementations across the computer industry, especially in integration and this Roy finds himself on my list. At still a young age and continuing his work at Adobe there is yet much more to come.


Frances Allen
4.    Frances Allen was born in Plattsburg, New York in 1932 becoming first a B.S. in 1954 and then an M.S. in mathematics from the University of Michigan in 1957. Whilst initially a teacher of mathematics she later joined IBM - our first IBMer on the list - in order to pay off her education debts but fell in love with the people in the company, so much so, that she remained there for the next 45 years.

It was Frances work in compiler optimisation that gained her the plaudits, after she read the FORTRAN programming manual and became interested in the field. She continued in this vane for the rest of her IBM career, working on some of the earlier supercomputers within the organisation such as Stretch.

Part of this optimisation was the use of her mathematics knowledge to gain computational advantages when analysing data sets. She gained many awards for the work including IBM, ACM and IEEE fellowship for her work in making the programs people loved to use, better.

In 2006, Frances was awarded the ACM Turing Award, a prize given for those who have contributed lasting and major technically important work in the computing field for her years of dedication. Additionally, she is one of the Women In Technology Internationally (WITI) hall of famers.

Read More: https://amturing.acm.org/award_winners/allen_1012327.cfmhttp://www.computerhistory.org/fellowawards/hall/frances-allen/https://www-03.ibm.com/ibm/history/witexhibit/wit_hall_allen.html

Douglas Crockford
5.    Douglas Crockford was born (according to Wikipedia, but I can’t verify) in 1955. Having graduated from San Francisco State University with a Radio and Television degree, Douglas has worked across the board as a technology guru at Atari, yahoo, lucasfilms, paramount pictures and paypal.

What Crockford is well known for his work with JavaScript and specifically the object notation called JSON which he discovered and has popularised ever since by documenting formally the notation for the JSON media type in  RFC 4627 and through a dedicated website. Additionally, he has published a book called “JavaScript: The Good Parts” which was released by O’Reilley in 2006.

What makes JSON so key is that it is a self-describing, hierarchical structured simple text which is both easy to use and more compact than its XML counterpart by around two thirds and although its name contains “JavaScript” it is actually language independent.

It is now widely used, and in some cases like Twitter, it is the only data expression exposed in APIs due to the simplicity and ease with which it is consumed. Whilst JSON will be Douglas’ lasting legacy his other work also provides much to be admired including his creation of the JSLint and JSMin software which analyses and minifies JavaScript code respectively.

Read More: https://tools.ietf.org/html/rfc4627https://www.crockford.comhttp://www.json.org/fatfree.html


I hope you enjoyed this little read and will go out and learn more about the people mentioned.

Who would go on your list of Integration Innovators? Feel free to comment and I can add them to Part ‘N’ of what I hope to be a little series over the next year.