w: www.meantime.co.uk
t: 01539 737 766

Friday, 10 July 2015

My thoughts on Cumbria Chamber of Commerce's budget response

On Monday evening, I was in Worthing visiting a friend of mine. For dinner, we went to an Italian restaurant that overlooks the beach and has a large decked area out the front, so we were able to eat al fresco whilst enjoying the sea view.

When the time came to settle the bill, the waiter bought the card machine over and processed the payment but, just as he was tearing off the receipt for me, he lost his grip on my card, which fell to the deck and right through the gap between two planks.

The waiter was incredibly apologetic but I told him not to worry; I could just order a new card. However, he wasn’t satisfied with this and used the torch on his ‘phone to peer through the decking. There was my card, about six inches below the decking. This served only to confirm to me that the card was irretrievably lost.

Our determined waiter did not agree, however, and disappeared for a minute or two before returning with two long knives and some blu-tack. And, after three or four minutes effort - accompanied by a little muttered cursing - the waiter passed me back my card.

I’m sure you’ll agree that this young man displayed great conscientiousness here: I’d told him it didn’t matter but he took responsibility for the situation and made every effort to return my card to me, successfully as it turned out.

I’m telling you this to illustrate my argument that any business is only as good as its staff. Your restaurant might serve amazing food but a surly waiting staff will drive away your customers. Your product might be amazing but if your warehouse staff are careless with it or don’t see orders out of the door on time, then people will stop buying from you and go elsewhere. I’m sure you can think of many, many examples for yourself. The bottom line is that your staff is the vital component of your business. (Unless, of course, you are in a monopoly, which might explain a thing or two about BT.)

And since this is a matter of common sense, really, I was very surprised to receive Cumbria Chamber of Commerce’s response to the budget. Sure, I expected it to be business focused, but I also expected a little more insight into the fact that it is the employees that make businesses successful.

Below, I have taken sections of their response to comment on but you can find the entire response at the bottom of this post.

National Living Wage/Minimum Wage
"This, combined with the welfare changes, shows a real move from welfare payments to payments for economic activity - increasing the motivation to work and rewarding work."

There’s a non sequitur here or at the very least an assumption that people who are unemployed need to be coerced into working. Removing people’s benefits does not magically present them with jobs for which they are qualified or able to do. According to the IFS, thirteen million families will be, on average, £280 worse off under the new budget. Nowhere near all of those people are unemployed, so how does cutting their benefits increase their motivation to work?
And how many companies want staff who are distracted and stressed by government imposed financial hardship?

"There is of course a real concern about the cost to businesses, and particularly SMEs. What makes it more palatable to business are the changes to Employers' National Insurance and to Corporation Tax."

Firstly, Rob Johnston illustrates in his second sentence why the concern is not real at all. The real concern should be why are so many businesses not paying their staff a living wage already. If your business can't afford to pay people a living wage then, frankly, you don’t really have a business. Not a proper one, anyway.

"It's difficult to take a global position on the impact as the combination of changes will have differing impacts on different businesses. And there is a need to follow on evidence based approach and minimise the impact on smaller businesses in particular."

I have no idea what that paragraph means. Onwards, then...

"It is a concern that there's an acknowledgement of 60,000 jobs expected to go, possibly mitigated to an extent by NI and taxation changes. While many more jobs are expected to be created these won't be in the same businesses, and businesses may well be lost, while new jobs created may not be in the same geographic areas or available to those losing out. A poorly paid job is still a job after all."

There you have it, a budget for working people that acknowledges losses of 60,000 jobs yet thinks that reducing benefits will incentivise people to find work. It's just bloody nonsense.
And, finally, “A poorly paid job is a still a job after all”. So, suck it up, poor people; be grateful for the job you have, even if you aren't being paid properly for doing it.

Apprenticeship Levy
"This is good news, with businesses positively rewarded for employing apprentices. The challenge is how the money will flow - which we have yet to see. It's to be hoped that there will not be an over bureaucratic system that doesn't work for smaller businesses."

Now this is absolutely clear cut evidence of the government’s smoke and mirrors approach to statistics. If you need to incentivise companies to take on apprentices, then there is no genuine requirement for those apprentices. This simply massages employment figures.

Corporation Tax
"Again this is good news for business. It will mean more money left in the business to make the business flow and to invest and sends out a tremendous message to the world that Britain is open for business."
I’ve two things to say about this. Firstly, if the government want to do anything useful related to corporation tax, perhaps they could start by collecting the £120 billion of unpaid corporation tax (and then we wouldn't need to cut welfare by £12 billion).
Secondly, telling businesses that Britain is a place where you don’t have to pay much tax is not the same as Britain being open for business.

One further comment I’d make is that both the chamber and the chancellor seem have to missed a key point about reinvigorating the economy here. One thing that we can say for certain is that people on lower incomes – say the bottom 50% of earners – spend their money. That might be on simply making ends meet, buying clothes and food, paying their bills, or perhaps, for those earning a bit more,  on holidays, cars and home improvements, eating out and buying luxury goods. What they don’t have the scope to do is put large amounts of money into ISAs, trust funds, and high interest accounts. So, if you want to grow your economy, don’t take money away from those who will spend it!

Rob Johnston blithely states that “This Budget has certainly shifted the agenda with a balance of politics and economics that provides a stimulus to the economy while making much needed changes to the welfare system and continuing to tackle the deficit”.

I would challenge him on all three points there: I don’t believe that this does provide a stimulus to the economy in that it takes money away from those most likely to spend it. I don’t agree that the changes to the welfare system are “much needed” and I’m irritated by this unfounded assertion. And finally, whilst we might be continuing to tackle the deficit, Osborne is doing it in pretty much the least effectual manner possible.

This budget was callous, as was Rob Johnston’s response. All economic arguments to one side, we should be taking care of those who need benefits. Remember, a high percentage of those people receiving tax credits, for example, are in families where at least one adult is in full time employment.

If we want successful businesses and a growing economy, then it makes sense for everyone to take good care of employees, whether it’s through a decent living wage – and not what Osborne counts as a living wage – or through providing benefits.

Buying into the rightwing narrative that is constantly played out in the press of scroungers and layabouts, and a need to cut welfare, is damaging to both our economy and our social fabric. Your company will not be successful if it is staffed by people who are distracted by fundamental concerns about how they are to feed and clothe their families.

Frankly, I'm appalled by how the Chamber has slavishly bought into the government’s narrative. I wouldn't pay money to any right wing organisation, so now I must question why I'm paying membership to Cumbria’s chamber of commerce.


The full text of the response

"This Budget has certainly shifted the agenda with a balance of politics and economics that provides a stimulus to the economy while making much needed changes to the welfare system and continuing to tackle the deficit.
Businesses will welcome the new permanent Annual Investment Allowance, further Corporation Tax reductions and lower National Insurance, as well as commitments to childcare and higher education that help them employ Britain's best."
Commenting on specific measures he adds:
National Living Wage/Minimum Wage
"This, combined with the welfare changes, shows a real move from welfare payments to payments for economic activity - increasing the motivation to work and rewarding work.
There is of course a real concern about the cost to businesses, and particularly SMEs. What makes it more palatable to business are the changes to Employers' National Insurance and to Corporation Tax.
It's difficult to take a global position on the impact as the combination of changes will have differing impacts on different businesses. And there is a need to follow on evidence based approach and minimise the impact on smaller businesses in particular.
It is a concern that there's an acknowledgement of 60,000 jobs expected to go, possibly mitigated to an extent by NI and taxation changes. While many more jobs are expected to be created these won't be in the same businesses, and businesses may well be lost, while new jobs created may not be in the same geographic areas or available to those losing out. A poorly paid job is still a job after all."
Apprenticeship Levy
"This is good news, with businesses positively rewarded for employing apprentices. The challenge is how the money will flow - which we have yet to see. It's to be hoped that there will not be an over bureaucratic system that doesn't work for smaller businesses."
Northern Powerhouse, Devolution of Powers and Enterprise Zones
"It will be interesting to find out more about the plans with Cornwall and how Cumbria could potentially benefit from similar moves.
We note the reference to the new enterprise zones and hope to see announcement of an Enterprise Zone for Carlisle soon!"
Annual Investment Allowance
"Making the £200k allowance permanent is really good news which should have a real impact on investment and productivity."
Corporation Tax
"Again this is good news for business. It will mean more money left in the business to make the business flow and to invest and sends out a tremendous message to the world that Britain is open for business."
Road Tax
"It's good to see that this is finally being tackled, restructuring an income source that was diminishing, and to see the commitment to spending that income on roads. We need to make sure that we see enough of this spend coming through here in Cumbria."

Friday, 31 October 2014

Our first ten years

A little over ten years ago I was in my thirteenth year of working as an IT freelancer. I'd worked in all sorts of roles - developer, systems analyst, test manager, project manager - during that time, for a variety of blue-chip companies. I'd also been running a hobby company, Meantime Internet Technologies, since 1996.

In the summer of 2004, I was working on a project for JPMorganChase, based in New York. I'd fly out to New York once every few weeks but for the most part I was working from my home office. My youngest daughter had just been born, we were doing the house up and life was good. And then one of Meantime's clients asked me to do a large project for them.

It was a tremendous opportunity, the chance I'd been waiting for, to give up the day job and run Meantime as a 'proper' company. In my excitement, what I didn't think about was the fact that I had no experience of running a real business, as opposed to the limited company that was my vehicle for freelancing.

So, in October, when my contract with JPMC came to an end, I declined their offer of a renewal and started to work for myself. At this stage, I'd already hired Steve to do the coding and the next step was to rent some office space, which we did, just next door where we are today. Pretty soon there were four of us working on the project and I found that I was enjoying myself hugely, doing things the way I knew they should be done, and watching the software take shape and come to life.

But alongside that pleasure in doing the work, I had the first inklings of the issues that go with running a business, not least the significant issue of finding more work and new clients. By the summer of 2006, I found myself waking in the middle of the night and lying there, worrying, unable to get back to sleep.

A difficult couple of years followed. We did pick up work, although there were some lean times, too, but we also learned the hard way about the difficulty of recruiting people who saw business the way that we did, people who cared about doing things to a high standard, for whom putting the customer first was second nature. So, people came and went but, crucially, the good ones stayed. And somewhere along the way, we seemed to get the hang of recruiting, because we haven't put a foot wrong for several years, up to and hopefully including our latest recruit, Adam.

I've been thinking recently about what I've learned along the way and I think it boils down to two things. Firstly, do what you know to be right, even when it means making a loss. You can't keep making a loss, of course, but meeting the expectations both of your client and yourself is the most important outcome of any project. (If you can't make a profit while doing that, then your pricing structure is wrong.)
Secondly, you need the right people around you. Both Steve and Hannelie have been with me right from the start and Meantime wouldn't be the company it is, today, without them. But it feels like Lou and Martin have been there almost as long and they've helped set that standard for everyone whose joined and stayed subsequently. What we've built over the last ten years is a culture that revolves around our four Cs: Clients, Code, Colleagues and Company.

It hasn't always been easy - God knows I've had to learn an awful lot along the way - but looking back over the last ten years, I'm incredibly proud of what we've achieved as a team. There have been problems, of course - you can't avoid them - but, crucially, we've always put them right. And we've shown what I've always believed to be true, that software can be delivered to specification, on time and on budget.

But I've also learned how much fun you can have along the way, and that's down to both my colleagues and clients. Because of them, I can really enjoy my work. So, thank you to all our clients, and thank you Steve, Hannelie, Louise, Martin, Danny, Paul, Jack, and Ronald, and welcome aboard Adam. Onwards and upwards!

Friday, 28 February 2014

Would you like to work with us?

Last June I wrote (here) about some of the qualities that go to make up a good developer. It's taken us a while to get here to the point where we have the best development team I've ever worked with but now it's time to recruit again.

Why "but", you might ask? Meantime's thriving and this is an opportunity to grow the company: surely this is something to be excited about?! Well, yes, but also hmmm...

It's tricky to find good developers. There are a lot of people out there who can write code and a lot of them can write quite good code but we need people who can write excellent code. And that doesn't mean fancy or complicated, it means code that works, that does what it was intended to do and that is written in a way that other people can pick up and work with.

And we need someone to fit in with our team. They are, as you might expect, great developers with specialisms in a range of areas but they're also a cracking bunch of people to work with. When I've been away, I always love coming back to the office, catching up with people, listening to the jokes and stories.

But we're looking to expand the family now and we need someone who can join us and feel at home. So while you'll get an incisive technical interview from Steve and you'll need to talk to me about the importance of change management, testing, user interfaces and a whole lot more, you'll also find that we'll spend a lot of time listening, so we can learn about you. That's you as a person, not a walking set of IT skills.

Many of our colleagues have been with Meantime for years and we hope that anyone who joins us will be with us for a long time, too.

So, if you're friendly, cheerful, happy working in a team AND you're a web developer, why not get in touch with us?

Tuesday, 5 November 2013

Return of the mini


Apple vs Microsoft, Mac OS vs Windows, Mac vs.... what? Well, pretty much any appropriate collection of components, actually. 

Whereas Apple have always been able to write their software knowing the target hardware quite precisely, Windows runs on what is, too all intents and purposes, an infinite variety of machines. 

But Microsoft has always been lousy at promoting its real strengths. I mean, they don't write their adverts, they buy a company in to do it for them, yet their campaigns are still rubbish compared with Apple's. Just look their (slightly unsettling) "we built a shop in your front room" advert compared with Apple's well-written "I'm a Mac"/"And I'm a PC" campaign. (Amusing enough to distract anyone from mentioning Apple's underlying assumption that being short-sighted, overweight and middle-aged were all attributes that made you uncool.)

I don't think I've ever thought Microsoft was a wonderful company but in the face of the Apple Fanboys' evangelism I've often found myself provoked into arguing its case against Apple's. That hasn't stopped me buying Apple products: I *love* my iPod, although I wouldn't buy another iPhone, having fallen once for Apple's assumption that their consumers will upgrade their hardware to keep up with their amazing software developments (and I DON'T mean that sarcastically). 

Indeed, I was amazed when less than a year after releasing the first iPhone, Apple had the effrontery to market the second model as "The iPhone you've been waiting for". (Cue Apple Fanboys everywhere: "This is the 'phone I've been waiting for. These are not the 'droids we're looking for.")

And then Windows 8. 

I don't like it. At first I thought I just needed to adapt to the new interface but, months on, I really find it irritating still. So, I've bought a Mac Mini, which I'm going to trial at home first, and today I unpacked it. I love an "unboxing" and it has to be said that Apple's packaging is another area in which they seem to operate with unfailing style. 

Actually, I ran a Mac Mini at home a few years ago but the operating system has moved on considerably since then: I understand that I am now running 'Mavericks' (which I think I'd feel a bit awkward saying out loud). I must say I'm enjoying it so far but I always enjoy setting things up (even Ubuntu!). But, to be honest, my only real reservation is the Apple crowd thinking they've 'won'. Hey, I'm am MAD about Office365 :-)

Friday, 14 June 2013

What makes a good developer?

Quite often when I talk to people about IT development, how projects should be run in order for them to be successful, I use building as an analogy. Let's say you wanted an extension on your house or even a new house. First of all, you'd have to have a think about what you wanted and then you'd probably talk to an architect. The architect will listen to your requirements, perhaps set you straight on a couple of ideas and possibly make a couple of suggestions of her or his own. This is analogous to the stage of an IT project when we first engage with a client and make our proposal.

At some point more detailed plans are required - showing, perhaps, where the outflow pipe from your jacuzzi will run - and this is equivalent to our systems design, the specification that is written by a systems analyst. This stage of the process, which I wrote about a few months ago, is critical to the success of the project. It details our understanding of what the client has requested and we won't start work until that document has been signed off.

So far, so good. We've reached this stage by talking to the client, starting in broad conceptual terms, then getting into more detail and ultimately documenting the project to the point where they can say "Yes, that is exactly what I want. Build it!" On our side, we will have worked out precisely what's involved so that we can give an accurate quote for the work and, crucially, plan the work into our schedules so that we can tell our client precisely when the work will be delivered. It is this process that is a key part in making good on our promise to deliver IT systems on time, on budget and to spec.

It is at this point, then, that the developer gets involved and, if you're not careful, this is where it can all go horribly wrong. You see, being a good developer is about so much more than being able to write code. In fact, in some ways, that's the most trivial part. When we interview for developers at Meantime, we assume they can write code or why else would they be coming for a job with us? (Which isn't to say that they don't get a thorough technical interview from Steve!) The qualities that we're looking for before we employ someone are a little harder to pin down. But I've been in IT for 25 years now and I have met an enormous number of developers, and in this post I'm going to detail some of the things that I think contribute to making a good developer.

One of the most important qualities is sense of place within both the team and the business. One of the worst developers I've ever worked with described himself, without irony, as "the talent". A good developer recognises that he or she is part of the project lifecycle. They appreciate the work that has taken place before a project reached their desk and also respect that work. A developer who thinks they know better than their colleagues or even the client, is not going to deliver what has been promised to the client.

And this sense of place should come from having empathy, which in turn should lead to some serious consideration about what the end users' experience of the software will be. Using good software should be like reading a good book; you should be barely aware that you're doing it. It should be intuitive and responsive. In fact, it is this consideration that has made Apple's products so successful over the years and which is the major flaw with Windows 8. A good developer will put himself in the users' shoes, thinking how will they know what to do, how can I help them through the process and how will I let them know when they've finished? As I've said elsewhere on this blog, the user interface is 5% of what the developer does but 100% of what the user sees.

A good developer will also be a team player. That's a hackneyed term, I know, but it's a useful one. In many ways this is an extension of my first point but a good developer will work well in a team in several respects. Their code will be well laid out and well commented in order to assist any developer who comes to amend it later on. They will respect the change control process, such that their work doesn't overwrite anyone else's - so this is that sense of place, again - and they will understand where they fit into a project, respecting what their colleagues are doing. A good developer will be happy to share knowledge and enjoy teaching. (Conversely, a bad developer won't share information.) A good developer will also take feedback - whether it's from the testing team or from the client - in a constructive way, understanding that it is a contribution to the process.

So that sense of being a team player also extends out to the people in the company who aren't developers and out to the client too, because any project is a team effort that involves the client. I'm always warmed listening to Meantime developers talking to clients, being friendly and helpful. And that sense of being a team player also manifests itself in making the brews!

Perhaps one of the more specific characteristics that I believe goes to make a good developer is finishing. That sounds a bit odd but you'd be amazed how many developers don't finish. I think this comes sometimes from not being clear about what they're required to do (which is why a good spec is required) or perhaps just because they can't stop tinkering! Over the years I've seen many a developer convince themselves that they have nearly finished a piece of work, only for it to run on and on. And these developers also seem to end up with more bugs being raised against their work. An understanding of what a piece of work consists of is essential to being able to plan it and also to knowing when it's done.

This list may not be exhaustive, but there is only one final pair of characteristics I want to mention: enthusiasm and enjoyment, and I think these are probably two sides of the same coin. I can think of countless times over the years when our technical director Steve has shown me a piece of work that he's pleased with and even this month he has surprised me with a beautiful little piece of a user interface. Simply beautiful. Readers of our newsletter and our followers on Twitter will be aware of Paul's brilliant work in turning a Raspberry Pi into our office Jukebox. You might think that building web pages is just about laying elements out on a page but, in addition to being a great designer, Lou soaks up HTML5, CSS3, W3C compliance and DDA with an appetite that never fails to impress me. The evidence is there in the tens of thousands of lines of code that Danny has written for one of our largest projects and, most rewardingly for me, in the stunning progress that our junior developer, Jack, has made: he's now working on live projects and that's months ahead of what I expected.

There are other people who make a huge contribution to Meantime's success, none of whom I would be without, but this post is about the developers and, as I think you can probably tell, I'm delighted by the team that we have. A bad developer is like a bad builder; they leave you with disappointing results that can cause you problems for a long time after the job should have been finished. It may be obvious to say that to have a successful IT project you need good developers but there is a further point here: you need a good team. This is why I'm strongly against outsourcing and off-shoring because that team should include the client, too. Recently, the sponsors of a project we're doing at Heathrow asked whether the developers on the project would like to come down to visit. More than anything else, that told me that Meantime has great developers who do a lot more for the business than just writing code.

Thursday, 14 March 2013

Banking on failure

Over ten years ago I was working for a Major Retail Bank (MRB) and I was responsible for testing their first fully online Internet banking application. I had two teams of around twenty people, one in London for a sister bank and one at head office in what, at times, felt like the Arctic circle.

We had cabinet upon cabinet of manually completed test scripts as well as automated text tools checking the less popular browsers. In each location I had two or three test coordinators running the teams on an operational basis and I had an excellent boss, Cameron Mealyou, supporting me strategically. With all this in place, we delivered very high quality testing and the live launch went without a hitch.

A short time later, a minor amendment was required to the software, effectively a change to some help text. Perhaps on another, lower profiled project I might have agreed to some localised testing but this was an Internet banking system; we couldn't afford a single incident to undermine customer confidence. Thus, I proposed a full regression test, employing the full test team for a week, thereby causing a week's slippage to the delivery of the next release.

This suggestion proved to be unpopular with the programme manager and matters became heated. Having stated my case once I couldn't see the point in labouring the point, so I told the PM he was welcome to over-rule me but that I wouldn't sign off the change as tested. I think it was pretty clear that overruling me would have made my position untenable and he reluctantly agreed to the test.

The testing produced three significant bugs.

When the bugs had been corrected and the release was live, I was in the pub with the development manager, I nice chap called Neil. After a couple a beers, he said to me "You couldn't possibly have known those bugs were there." Which is an odd thing to say, isn't it? We don't test because we know there are bugs, we test in case there are (although that is usually the case).

A few months later I moved on to a new contract. I was told the test teams would be wound down "because we never have any bugs in the live environment." This is like saying "I think I'll stop exercising because I never have any problems with my fitness"!

I've been reminded of this a few times recently when I've encountered problems with my bank's banking software and also because of the high profile issues that have been reported in the press. These problems point - undeniably - to a lack of testing.

And it's not that testing is particularly complicated. It's mostly a combination of common sense, rigour and a conscientious approach (rather well suited to those who are a little OCD). It is, however, pretty expensive: there's a lot of preparation involved and the process itself is time-consuming. On many occasions I saw a project manager attempt to cut testing time in order to hit a deadline and this is a classic reason for bug-ridden live releases.

So, my message to the banks is: stop scrimping on the testing and support your test managers.

Friday, 16 November 2012

Systems analysis: the neglected step in the journey.

When I was first working in IT, I was used to coding from a specification. I was so busy struggling with Cobol, JCL and DL/1 - yes, I'm that old! - that I didn't stop to think about where these specs came from.

A couple of years later I was working for VSEL amending some programs (as we called them in those days) and having been told what we needed to do, we'd look at the existing code and the database and work out what to do, often coding as we went.

It was only on my first contract that I began to see a better way of doing things. There were some people on the development team who didn't write code but whose job was to write these specification documents that I remembered from my first job. We all sat in one open plan office and each developer worked with one systems analyst.

I found this tremendously interesting, especially as I began to get a say in how the programmes might work,  and over the course of my next couple of contracts I made the transition from developer to systems analyst.

At this point, you might well be saying to yourself "this is all very well but what's a systems analyst?"

Good question.

The business analyst collects the business requirements. So, for example, a new system might track books in and out of a library and each card holder is allowed to have three books at any one time for up to a fortnight. That's a nice simple piece of business analysis.

The systems analyst, though, has to design the system, the database and the logic. It's the systems analyst who will typically find the gaps in the business analyst's documentation, sending them scurrying to the client with questions like "but what happens when the card holder has had a book for a fortnight?"

It is this final specification that the developer will code from and, whilst the developer has some leeway in exactly what they build, it is that specification written by the systems analyst that determines what will be tested. The programme should do what the specification says and no more.

Of course, this additional step appears to be very time-consuming and it is but, as is so often the case when a company does things properly, it pays dividends. The approach that simply sets the developer coding with a bunch of requirements often means that the developer will get halfway through before realising that he needs to go back and change something he's already written. It means that the client isn't suddenly presented with quite fundamental questions during the build process, which may be a little unnerving. And, in a constructive way, it presents a contract between the analyst and developer, who have agreed what is being built. If the requirements change and the spec needs amending, the developer can very reasonably ask for more time.

Furthermore, the specification forms an excellent basis for system testing, as it details precisely what the system is supposed to do.

As a business, Meantime prides itself on delivering on time, on budget and to specification. The systems analyst's role is key in helping us to keep this promise to our clients.