23 Jan 2018
I have the good fortune to work with top companies whose leaders are passionate about transforming their applications and technologies to improve the quality and responsiveness of their business.
What is the point of technology if it does not make life simpler, the journey smoother and faster for delivering services to customers in a reliable way? Why is it so common for top companies to invest so much resource and budget to consistently fail at such a simple objective?
The sad truth is that every project I join after the fact will be facing the daunting reality of missing it’s key objectives of budget, timescale and always compromising on quality. The reasons for such issues are always due to a combination of factors including poor leadership, lack of a disciplined methodology and a supporting detailed plan. Poor teamwork and politics across silo departments and third party suppliers who are not managed to an appropriate commercial framework can also exacerbate the challenge.
In very rare cases where I have been entrusted by project sponsors to initiate a project from concept through to completion have I had a genuine sense of fulfilling a promise to deliver a project on time, under budget and exceeding customer expectations. Handing over a project and witnessing a rapid adoption by customers is without doubt the final seal of validation. It’s an amazing feeling for all concerned!
The challenge with many enterprises is that the relationships between stakeholders and senior leadership are complex and highly political in nature spanning across many departments. Also, the scale of investment required to deliver transformational change has to be justified by getting buy-in across a large number of interested parties and as a result the project leader is faced with walking a political tightrope. The need to constantly justify and seek approval is counter-productive. This interference coupled with the resulting confusion places commercial and people dependencies under immense strain. So much so, that the project team can feel paralysed from achieving the simplest milestones.
That aside, many project teams simply do not understand or follow a formal software development process. The common theme I encounter on many of my project engagements is the lack of traceability, requirements and design artifacts. Most project teams are clueless as to what has been implemented and the traceability from implemented code back to test case, design, architecture assumptions, requirements and business case. This lack of traceability and discipline often means that the developer responsible for writing the code is the most important person in the chain. Without traceability, the developer - who is likely to be the least expensive resource on the project - must make sense and deliver working software by making best guess assumptions where formal traceable documentation is not available.
A typical project will have multiple development teams with several developers assigned to build key objects and components. The compounding effect on the risk and scale of mismatches that will surface during the integration phase of major sub-components increases dramatically. The later we identify and attempt to resolve issues during the project lifecycle the greater the impact on schedule, cost and quality.
Many large organisations have shifted away from a waterfall approach to a more iterative, incremental and agile project methodology. The benefit of shorter cycle times for delivering drops of functionality has been welcomed by business users as there is a sense of progress, early collaboration and visibility of project status. Also, dispensing with the formal analysis and design documentation that usually accompanied the waterfall approach was considered a major benefit of agile. My experience of hybrid agile projects has sadly observed ever more budget and schedule over runs resulting in sub standard legacy software being delivered from the outset.
As projects approach the looming year end and budgets are being reforecast, I see frantic efforts to identify a Minimum Viable Product (MVP) to enable an overrunning project to be shut down as quickly as possible. The pressure and embarassment for senior managers to plead for more time and funding to bring the project back on track is extremely painful. Naturally, these efforts are highly disruptive and demoralising for all concerned. Very rarely can such a project recover or deliver on its original business case and promise. Usually, the major transformational project has already become a legacy system of Frankenstein proportions.
Why do most organisations get it so badly wrong? This is always a combination of factors: weak leadership that lacks the experience and capability to scope, analyse and plan a project is fundamental. Add to this the hiring of inexperienced or poorly motivated people to key roles that lack the domain or technical expertise, then we have the recipe for a perfect storm. The issues that drive a project to failure isn’t due to the software, tools or technology. It is the lack of experience, sound process model and methodology that profoundly impacts the quality of the design and build. Delivering a solution that is fit for purpose must be capable of withstanding amendment without falling apart at the first attempt at a change.
Very few projects proceed as planned. The start of a project is announced with great fanfare and enthusiasm but rapidly hits a wall. Poor productivity and the lack of traceability and prioritisation mean that the inevitable rush to get something delivered results in chaos. The desire to spin a success story out of an impending disaster means that serious compromises will have to be made. The project sponsors will be forced to accept a hobbled together deliverable with a long list of inaccuracies and defects. Not to worry, the project will learn from past mistakes and deliver better next time. Unfortunately, like suicidal lemmings we rush to the next cliff repeating the same mistakes over and over again.
Contact me if you have a requirement for an experienced technical delivery manager to help you stem the tide of challenges and issues your technology projects are facing. Project management is not simply about managing lists and raid logs. An experienced hands on technical delivery manager will engender trust, set out clear objectives and responsibilities across your technology and business teams. Adopting a traceable project methodology will help your business stakeholders deliver an exceptional user experience for your customers.
29 Mar 2017
Having a personal website is all the rage. Given the long list of options where does one start. As a technologist I’m always trying out new ideas and prototyping solutions. So let’s take a look at how I arrived at the current Jekyll based solution you are currently reading.
- Must be simple!
- Free hosting with a custom domain name
- Simple content editor that supports images
- GIT-based release updates
Remarkably, this project did not require a business case, funding, the availability of a large group of people or any sponsorship from a senior executive. I managed to do it all by myself. Apart from this little writeup, all of the requirements, design and planning is maintained in that very efficient repository known as “my brain”.
Keeping It Simple
We all know what Simple is when we meet it. It’s a rare experience in the corporate world. But when all the decisions are with one person, it is pretty trivial.
To appreciate Simple we need to have met the close cousin Difficult. Previous experience of implementing Content Management Systems (CMS) such as Drupal and Typo is verging on an enterprise grade platform. The hosting and config of these open source beasts will require rolled up sleeves and a few iterations to get it into shape. Achievable but not Simple!
The Simple solution that I am using to braodcast this content is courtesy of Jekyll. A very simple and lightweight framework that makes it very easy to configure and deliver content.
The Jekyll setup is well documented. The ideas are captured in a file using a simple Markdown editor such as MacDown. Once setup on your local machine the next big step is Hosting!
The simplest way to host a Jekyll website is to create a free GitHub account and upload the full website as a Git repository. With a little tweaking, this will magically dispatch your content to users as website via a dedicated url eg yourwebsite.github.io. The GitHub platform is a native user of the Jekyll framework and there are simple instructions available for serving your web content to users.
The hosting option I have used is based on the excellent and free PaaS offered by Redhat Openshift. Once configured with the Jekyll gears the hosted solution is accessible via a dedicated url which can be aliased to a custom domain by setting up a DNS entry with a CNAME mapping. A couple of mouse clicks and follow the simple instructions and a robust hosted website will be up and running.
Let’s face it, the whole raison d’etre for having a website is to publish content. Content creation for your Jekyll website must be written in Markdown syntax and there are so many great editors available that will make writing posts fun. There is a great review of Markdown and available editors. However, in simple terms each post will be contained within a single file. The filename of this post is 2017-03-29-website-simplification.md. The naming convention is automatically used to sort your posts in date order. I use MacDown to write up my posts and store the files in the _posts folder.
The Markup syntax allows images to be easily incorporated into posts. A good way to manage images is to keep them in a separate folder to your post files. The directory structure might look like this:
You get the idea. This makes it easy to pick out the images associated with any post.
GIT Based Release
GIT is perhaps a little too technical for casual users who do not have a developer background. But it’s relatively simple but extremely powerful tool for managing changes to documents. There are plenty of explanations available if you want tio find out more. There are command line versions of git available which allow you to manage the version history of your files. These are a great fallback option if you are stuck.
But a free version of Gitkraken makes life so much easier to provide a GUI based secure front end to GIT. Tracking changes and updates to your website becomes simple and fun.
The full flow of content from idea to served web content is orchestrated with a good mix of tools that simplify the process and the best part, it costs nothing!
You may be thinking, why bother with all this? Why not just post the content on to a blogger site? Well if you are the sort of person that yearns for a microwave meal, then that is certainly an option. This solution is not quite a meal at the Savoy, but it’s a pretty decent Spag Boll meal that you have built with some decent labour. Enjoy!!
29 Mar 2017
To remove the git history and baseline the repository to the latest node follow these manual steps:
git checkout --orphan newBranch
git add -A # Add all files and commit them
git branch -D master # Deletes the master branch
git branch -m master # Rename the current branch to master
git push -f origin master # Force push master branch to github
git gc --aggressive --prune=all # remove the old files
28 Mar 2017
Building a house is a lot harder than writing software?!
A Home is without doubt one of those important things that effects our lives. We will all own or rent one at some point in our lives. Housing is everywhere. Very similar to software, it’s an integral part of what we do.
Our Homes are also a major investment for us where we tie up huge amounts of capital and wealth. So, it’s not surprising that TV programmes on all aspects of property are so popular with the masses.
Buying a holday home or renovating a second property to rent out present enticing investment ideas for people. A 60 minute episode of Grand Design will make us feel our creative juices itching for a power tool to knock down a wall or build an extension. Some may even see property development as such an easier way to make a living than having to working in an office.
Well that’s kind of true. The reality and horror stories of people who enthusiastically jump into renovating a property and hit difficulties is also quite common. I wonder why?
I was playing with Archimate recently and created a model of the business functions and services that must be managed during a major property build project.
I know from personal experience, how painful this process can become when a complex, expensive and challenging renovation unravels. The unpredictable and frequent issues stretched me physically, mentally and emotionally. The compounding effect of pressure due to time, budget and quality made me realise that I had taken on a mammoth task. Whether you play a small management and financing role or a more hands on involvement, the pressures can be severe.
The timing of this renovation was shortly after a challenging consultancy engagement. Due to personal circumstances I set myself an unbelievably difficult challenge: to complete the entirety of this personal project in 2 months from start to finish.
Rear shots taken when we viewed the house.
Rear view after completion.
The sale of our current home at the time had concluded faster than anticiptaed and we agreed to the buyers’ aggressive entry date. Two months - to purchase the new house, submit designs and plans for council planning and building warrant approval, engage contractors, demolish / remove and rebuild. The property had to be habitable for a young family and our furniture in 2 months! The business model depicted in the diagram above came to life with a vengeance and I was the fodder fueling the monster.
During this time I became friends with a new orange friend!
With the benefit of hindsight, I would have never started such a project. However, being enthusiastic and reasonably pragmatic, I rolled up my sleeves and jumped in. How wrong I was! This was tough. Not a sprint or a marathon. This was an ultra marathon with shackles tied to your ankles. This was the kind of character building that you wish on others. This beast required every ounce of grit and magical power before it would concede.
The results? Well have a look at the before and after pictures above. Would I do it again? Yes, but I would not put myself under such time pressure and the very real risk of ending up homeless if the project did not complete on time.