A few weeks ago in bad weather one of the tiles fell off the roof of my house overnight – we didn’t hear it happen but saw the debris on the front doorstep in the morning. Fortunately nobody was standing underneath at the time!
The tile had been cut to fit against a Velux Window – so it wasn’t the full width. This might have contributed to why it slipped out – not enough friction to hold it in.
I resolved to at least try and fix the problem myself – as paying someone to fit a single tile felt a little daft. Fortunately the previous owner of our house had left a pile of spare tiles. So all I needed was a way to cut the tile to the required width.
All of my research indicated that I needed power tools with suitable blades. I wasn’t happy with the idea of buying the equipment for just one tile so did a little more research. I found a technique for cutting bricks where you use a chisel to score a line and then hammer the chisel (gently) to make the cut. I knew that the tile was more brittle than a brick but I had lots of spares so thought I’d give it a go.
After a quick trip to B&Q where a very helpful sales assistant helped me select the most suitable hammer and chisel I was back home ready to start work. My first attempt resulted in the tile splitting in the wrong place. So my second attempt was more gentle and patient. And it worked! I cut the tile just where I wanted.
The next step was to install the tile. This was harder than I expected. I thought I’d just lift up the two tiles above the gap and slip it in. Unfortunately that just wasn’t working.
And then along came the Good Samaritan Roofer. A young man (boy do I feel old typing those three words) was walking past and saw me leaning out of the upstairs window. He asked what I was doing and offered to help. Turned out he’s a roofer and he just moved in down the road. I invited him upstairs, and he fitted the tile in a few seconds!
It was really kind of him to notice my predicament and offer to help. This small act of kindness made me really happy – and I now my roof is fixed too!
The great promise of DevOps is the ability to regularly deliver new business function in an application portfolio through the process of continuous integration and excellent collaboration between the application developers and the IT operations team. This is eminently achievable when everyone works for the same company, but can it work in the world of outsourcing?
Importance of Systems Thinking
There are many organisations that have embraced IT outsourcing, acknowledging that they are not expert application developers or IT technicians, but certainly know their business and customers. These organisatons rarely put all their eggs in one basket. It’s quite common to outsource IT infrastructure to one company, networks to another, with application development and maintenance going to a third. The companies that provide the outsourced services are often capable of delivering more than they are contracted to. So there is often a lot of competition going on between the service providers – vying to take over a larger scope of the outsourced services. If you’ve read The Three Ways you’ll be aware of the First Way being Systems Thinking. I am stressing the importance of Systems Thinking being enforced (is that too strong a word) by the client across their Apps and Infra providers.
(For brevity for the rest of this article I’ll refer to the IT Infrastructure provider and what they provide as Infra and the Application Development & Maintenance provider as Apps)
Encourage a blameless culture
It is this ongoing competition that I feel is a major barrier to the successful implementation of a DevOps culture alongside outsourcing. But I believe that it can work, if the client puts in place effective governance and rules of engagement. One aspect of this governance is defining and agreeing clear roles & responsibilities within the DevOps framework. This can be challenging even in the simple example of two providers: one delivering IT infrastructure and the other in the application development & maintenance space. Another aspect of this governance is to implement a blameless culture see Blameless Postmortems. If the Apps and Infra providers can be encouraged to focus on solving problems together then this should be a good step towards harmonious collaboration.
One DevOps environment – governed by the client
It is common for the Apps provider to use their own environments for development and unit testing. The Infra environment is then used for later stages of test (integration, operations, system, acceptance), production and disaster recovery environments. If code needs to flow through the various stages of development, test and production deployment using a single set of tools and processes then it’s a lot easier to have a single IT infrastructure to work with.
Apps will be a major source of requirements for Infra. It would be unreasonable to expect one outsourcing provider to directly specify requirements to another. Therefore one of the main governance roles that the client should perform is to facilitate this requirements gathering and validation. The Infra should be evolving over time as the platform is increasingly used. Examples of regular enhancements include support for new versions of operating systems, databases and middleware, and the addition of the associated monitoring capability. It would be unreasonable to expect Infra to support everything from day one so the client should also agree a plan that describes what facilities will be made available and when.
DevOps requires integrated, automated tools used by all parties
If we think about how DevOps works, one building block is an Infra that is fully automated with a self-service interface that the developers use. Therefore the client should work with Infra to get such a platform implemented. It needs to be done in concert with the developers to ensure it meets their requirements, but it can also work as a standalone platform. Many Infrastructure as a Service Cloud platforms already provide some of the constituent parts – but the key is integrating the infrastructure platform with the development tools. I recently saw a great example of Urbancode Deploy being integrated with SmartCloud Orchestrator to provide a DevOps platform using existing servers in an in-house data center. DevOps doesn’t have to mean Cloud.
One sticking point could be the integration of the tools. Infra will have their tools and Apps will have theirs. Engineering them to work together is often feasible but the politics of integrating tools used by two different companies is likely to be a tricky negotiation. Again, this is where the client needs to take the lead and define, in agreement with all parties, exactly what needs to be done. One option is that the client purchases the development tools rather than the Apps provider. This might present a software license challenge as the Apps provider might already have very favourable terms with their tooling provider. However, given that many tools that DevOps professionals use are open source then this might not always be a roadblock.
As an optimist I believe that DevOps can be achieved when application and infrastructure work has been outsourced. But it requires the active buy-in of all providers and excellent governance from the client. Tools can be integrated and commercial challenges can usually be resolved. It’s the attitude and governance that are key to DevOps and outsourcing success.
We have a NEFF combination microwave / oven in our kitchen. It was installed by the previous owners and has been an applicance we have used almost every day since we moved in. So when it stopped working it needed fixing quick!
This morning I went out for a run at 6am – a luxury that I can’t remember last time I enjoyed. To many people the idea of going out for a 6-mile run, let alone so early, might seem anywhere on a spectrum from foreign to extreme. However it’s something I enjoyed since I started running properly in 1995.
My 1-year old daughter has been teething for the last couple of weeks, so my wife and I haven’t had a solid night’s sleep for quite a while. This morning I awoke naturally at 5.:45 feeling relatively refreshed having slept through. So I thought I’d take the opportunity to go out for a run.
It was a great decision. There is a very calm feeling at that time of the morning. The world is slowly awakening and everything is still quiet. For much of my run all I could hear was my feet on the ground, my breathing, and birds tweeting (not the 140-character type either!) I find early morning runs are a great time to let my mind wander and just relax. I guess it’s somewhat like meditation – but I’ve never done that so I can’t be sure.
If you haven’t tried it, make the time to get out for an early morning run. Especially on a day like today when there’s a lovely blue sky and the rising sun looks is a warm orange globe in the sky.
I spent Tuesday & Wednesday on-site helping to get the software installed and the data loaded. By the end of Wednesday we had IBM Content Analytics up and running with almost 29,000 records loaded. We had also taught the tool about my client’s business by loading a set of dictionaries that people in the business had created for us. This activity is critical to the effectiveness of text analytics as the tool needs to know what words it’s looking for.
Fortunately all the preparations we had made in the preceding weeks meant that getting to this stage was relatively hassle-free. I called in a favour to get some more storage space for the indexes (who knew that the indexes would be 10-times the size of the source data). I also had to brush off my linux skills to help get the data loaded (an issue with recognising milliseconds in a date field!)
The client is now going to spend the next couple of weeks experimenting with the tool to see what business value they can glean from the data set. It’s easy to spend ages discovering all manner of interesting observations – the challenge is identifying those that can lead to a business change being made which will have a real, measurable impact.
So it’s almost time to put the first innovation project to the test. I started my new role on July 1st and almost immediately started discussing how Text Analytics (or Natural Language Processing) could be of value to one of my clients.
Often when participating in an innovation partnership with our clients we start off agreeing a definition of innovation and then defining the scope and some key themes. However with this client they had already reached this stage by the time I arrived on the scene. They have a head of innovation, which is really helpful as it means that innovation isn’t something that people just fit in around everything else they do.
In my first meeting with the head of innovation we agreed to explore areas where Text Analytics might be of benefit to the business. I organised a workshop where my expert colleagues demonstrated what we have helped other clients to achieve and we discussed the art of the possible. By the end of the day we had identified a pragmatic candidate project to be a Proof of Concept (PoC). Pragmatic in that we believed the data was available and we could demonstrate value to the business within three months. We left the workshop buoyed with enthusiasm and a list of actions to complete.
By the following week my client had gained the support of a business sponsor and built a team of business (not IT) experts to work on the PoC. We had weekly meetings to plan and prepare for the PoC – specifically to arrange:
- Evaluation software licenses
- Somewhere to install the software (a suitably sized Virtual Machine)
- The data in a useful format
- A Text Analytics specialist to provide the software skills
I’m glad to report that everything is now in place. So next week the team will be installing the software, loading the data, and training the system to understand the terminology that is specific to the client’s business. It is a significant milestone to get this far – gaining not just the agreement of people to contribute to the PoC but for them to actually deliver on their commitments required good communication and goodwill from a number of people.
I’m excited to see what next week’s work will bring – watch this space!
I recently had the pleasure of a coaching day with Julian Goater, which a friend organised. He is a very successful runner and who now shares his knowledge through coaching and writing (see The art of running faster) .
One of his recommendations for getting fitter and faster is to run twice a day. This is something I have had experience of when attending training camps by Mike Gratton but didn’t sustain it afterwards. Julian’s theory (which I paraphrase) is that it’s better to do two short, quality sessions a day rather than slog out one long run. The key being quality rather than just putting the miles in – to avoid getting in to bad running habits and getting injured.
So I thought I’d give it a go – the key challenge being making the time. Fortunately I have a flexible job, which really helps. The pattern is to go out for a short run in the morning – nothing taxing – just enough to get the metabolism going. The afternoon / evening session is more structured training: fartkek, intervals, etc.
Two days in and I’m already finding it challenging and rewarding. It’ll be interesting to see how I get on.