Tobin Harris

Lives in Leeds. MD of Pocketworks. Loves design thinking, UX, product management and agile. Author, creator of yUML, hobbyist musician and photographer. Dad of two beautiful girls.

As a managing director, I hit problems in business on a weekly basis. Business just throws crap at you all the time. Then, you have to figure out what to do about it.

Here are a few examples of crap that hit me over that last 5 years:

  • We’ve accidentally done £150,000 worth of work which we can’t invoice the client for because we didn’t have tell them we were doing it. Shit!
  • We haven’t sold anything this quarter, how are we going to pay the bills?
  • We’ve just gone over budget for the second time and the client is going to ditch us.

I used to just deal with problems like this in the moment. I’d figure out a solution and deal with it case-by-case. You can always find a way to get by, right?

The problem with this is that you don’t really fix anything. Problems happen again and again and again. And this means your business or department is going to be a pain in the backside to run. You’ll have less fun and more stress.

The good news is that, over time, I’ve learned a simple method for dealing with this kind of crap properly. A method that means it’s much less likely to happen again. So what is it?

“Make it visible.“

I could also have worded this as “Expose the data” or “Map it out” or “If you can’t see it, you can’t solve it”.

In my view, almost any recurring business problem can be improved by increasing your visibility of the problem. The idea is simple:

  1. Determine what data is relevant to the problem
  2. Capture the data, building a picture of the data in a way that gives you some insight
  3. Create a way of updating and reviewing this regularly

So, if you’re over-servicing a client, the solution might be:

  1. Record time spent on the client
  2. Create a report of time against budget
  3. Do this every week, and review

If there’s a problem, you can see it coming and deal with it before it escalates.

This is incredibly simple. Don’t let that put you off - it’s powerful too.

The trick is to approach problems thinking “What can we not see that allowed this to happen?”. You’ll soon realise that your business problems are often due to lack of visibility.

Your job is to create visibility.

Another upside is how you interpret what others say. So, when you’re in a meeting discussing a new load of crap that’s hit you out of nowhere, you’ll hear people propose solutions. Then, you’ll start categorising them in one of these two ways:

  • Is it a solution that masks the root cause to get us through the day?
  • Is it a solution that addresses the root cause so the problem is properly fixed?

You’ll start to favour solutions that consider the relevant information and which attack the root cause. And if the facts aren’t known, you’ll look for ways to reveal them so that your solution quality goes up.

Some of you might dismiss all this advice because you’re thinking “This is too obvious” or “I don’t have time or motivation for this”.

This is how I used to think too. And if you think like this, you have work to do. You need to have a hard think about why you don’t want to fix your own problems properly.

The thing is, how else can you do it? How do you expect to solve your business problems if you don’t a) look at them more closely and b) making that a repeatable thing?

Doing both of these things means you go from reactive to proactive. This is what allows the problem to stop happening.

Hope this helps!

P.S - If you're a software developer, this should work for you too. E.g. Tearing your hair out on a code base that's hard to change? You probably can't see the execution paths. What's the smartest way to make execution paths visible? Then you can look at simplifying them with refactoring. What can you do to make this complexity more visible on a regular basis?

I decided to invest some time improving my blog. It was feeling like an out-of-date, tired old place that gave me no inspiration to write. So, you’re now seeing the new, faster version that should work nicely on phones and tablets, and also be more readable with better structure.

This site on the iPhone XRenders nicely on the iPhone 11 Pro

Here're the results from Google Page Speed.

Google Page Speed TestSpeed test is reasonable :)

Why roll-your-own?

I considered writing on Medium before doing this update. But I don’t like the idea of someone else having control of my content. Or blocking people from reading it unless they pay. I enjoy Medium but hate the paywall.

Secondly, I’ve got lots of old posts on here. I thought about starting afresh but there’s something nice about keeping the history. That content still gets read today, so why throw it away?

I also considered the Ghost platform, which looks awesome. I decided against it once I’d reminded myself how easy Sinatra is to work with. Switching to Ghost would have meant having to import all my old content.

Bulma, Sinatra, Lazy Loading etc

Updating it wasn’t as bad as I’d feared. A re-skin and a few other improvements took only 4 hours.

This site was an incredible simple Sinatra site. The guts of the site are only 250 lines of code, and that includes post authoring CMS, tagging, archiving and RSS feed generation. The hardest part of working with it again was updating the dependencies, some which date back to 2008.

So, I decided to have a crack at modernising it, which basically meant updating to newer versions of Sinatra and Ruby, retiring the old CSS and trying out Bulma.io. I also applied some new typography, some lazy image loading and simplified the navigation. This meant it was mobile-friendly, faster to load and more readable.

I picked Bulma because I fancied trying something lighter than Bootstrap. Bulma seemed a little simpler. After 4 hours of use, I'm starting to get the hang of it. Instead of customising using it's npm package or webpack, I just monkey-patched the CSS. When I get more time I'd like to come back and customise it properly. Feels a bit hacky!

Cloudinary

If you look at old posts you'll notice lots of images are broken. I was using http://puush.me in the past, but for some reason, my images have gone. I considered a few new places to put the images.

  • S3
  • DropBox
  • Cloudinary

Amazon S3 was my first thought for images. I could whack a CDN in front and all would be good. Unfortunately I couldn't find the login, and since everyone at work is on holiday couldn't easily find out.

Dropbox was the next stop. It seemed pretty good to start with. Just upload to a public folder, preview online, then copy the preview image URL. I then hit issues with .webp images on Safari (they don't work) and realised I needed to convert to .jpg.

Finally, I realised that something like Cloudinary would do this for me, and was actually designed for developer image hosting. So, I dragged the images up to there where there are a load of optimisation options available for a blog like this. I think the free account will do nicely for a while, so that's a bonus.

CloudinaryCloudinary is really easy to use and has great features for blogs

So, hope you enjoy the new blog. There are a few niggles to fix so I’ll get to those as I go.

Here’s the old site, in case you haven’t seen it. It’s also available on wayback machine.

Old Tobin Harris SiteThe old design of this site

I donated my iPad Pro to the office back in September. I had a 12.9-inch first-generation model from 2015.

A few months later and I am missing it badly. For one reason only - sketching.

I mostly used the iPad Pro for sketching notes, mind maps, user personas, user interfaces, that kind of thing. Here's some examples drawn with the 53 Paper app.

iPad Persona SketchA user persona sketched with 53 Paper

iPad UX Sketch Some user flow ideas sketched with 53 Paper

The problem was, the first-generation iPad Pro is a big beast. It's too big and heavy for everyday use in my opinion. So, for me, I'd only use it a few times a month. I'd use my smaller and lighter iPad Air for reading and daily around-the-house stuff.

I think a person only needs one iPad. Nobody wants to carry two iPads around with them. If you don't use the 2nd one very often, you forget to charge it, which means you can't use it when you want to. And then you have the hassle of running software updates twice.

If you're the sketching type, you should have one iPad that supports the Apple Pencil. Fortunately, in 2019 all iPads support the Apple Pencil. The iPad, iPad Air, iPad Mini and iPad Pro. The question is then, which pencil should you buy? First-generation or second-generation?

The newer Apple Pencil is better. It has an extra touch-sensitive sensor that you can tap to switch tools. It's also magnetic, so clips nicely to the side of the iPad when charging. Much better than the goofy Lighting connector setup seen on the first-generation Apple Pencil. If you're a serious sketcher who can afford £1,000, then the Pro is the sensible option because this is the only one that supports the new Pencil.

New iPad Pro with Pencil and KeyboardThe iPad Pro with Keyboard and Pencil will cost about £1,067

In the near future, I'll be selling my old iPad Air and getting a new iPad Pro. Having not had one for a few months I really miss being able to visually throw ideas down. Having one iPad will simplify things a little. And I'll go for the smaller size so it's easier to carry around.

Think this is the right choice?

27 Dec 2019
Working long hours

There’s been some interesting debate on Twitter around working long hours. Jason Fried from Basecamp argue this:

If your company requires you to work nights and weekends, your company is broken. This is a managerial problem, not your problem. This is a process problem, not a personal problem. This is an ownership problem, not an individual problem.

See the Twitter Thread

I’m a big believer in standard working hours. So much that It's part of the business plan for Pocketworks in terms of our financial model and the culture we encourage. I chose this view after learning from a few sources:

  1. The agile community
  2. Personal productivity coaches

The agile community generally discourage mandatory overtime. Decades ago, Kent Beck came up with the notion of sustainable pace as part of Extreme Programming. This meant getting things done in the confines of a 30-40 hour working week. The idea is that teams learn to deliver software for the long-term without the team burning out or losing motivation.

This recognises that overtime is an anti-pattern because it can be used as a quick-fix for schedule, management or quality issues. If you hide the underlying issues, it’s very hard to fix them. In other words, you can’t fix what you can’t see.

Overtime also trips up your velocity. Velocity is a useful metric because teams can use it to forecast when things might be done. Ad-hoc over time will make it hard to achieve a stable velocity, which means you’re not going to be very predictable. Nor will you be able to be repeatable. Your performance each month will vary wildly.

Predictability and repeatability are good things to have in business.

Another angle is around personal growth. If you work late every day when will have time to develop your own skills by learning and practising?

Coaches such as Brian Tracey, Tim Ferris and Stephen Covey advise that we become disciplined enough not to take our work home with us. If you’re itching to do something productive instead of watching Netflix, use your own time for personal development and learning. In my view, it’s not “work” as long as it’s fun, entertaining and not stressful. For example, practising a new skill is generally fun, and you can break off to read a book or see friends whenever you want. That’s very different to work.

As someone who runs a business, I still work to this rule today. I use my free time to help my own development. Sometimes I practice techniques and ideas around real work, but most of the time I don’t want my personal experiments interfering with work deadlines and stresses because that can take the fun and motivation out of learning.

In short. If you’re a tech manager, give your business a chance at being sustainable by eliminating long hours or overtime. And when you do want to work out-of-hours, work on your own skills and education. Try not to mix this with your day job too much, otherwise, learning can become stressful.

Thanks to this, there is a nice tool to allow creating of yUML diagrams from the command line or scripts.

For example:

$ echo "[Hello]->[Tobin]" | yuml -s scruffy -o diagram.png
$ open diagram.png

Which opens this

yUML IMG

To install this cool tool on your Mac, just do this:

$ sudo easy_install pip
$ sudo pip install https://github.com/wandernauta/yuml/zipball/master

That's it, you're DONE!

There are over 194M photos taken with an iPhone on Flickr. In comparison, the popular Samsung Android phones have around 11M photos.

That's quite a staggering difference.

For stats... see the iPhone 5 on Flickr, and also the Galaxy S4 on Flickr here.

Both platforms are awesome

My sister is looking for a new smartphone with great photo and video capabilities. I was checking out how the leading Apple and Samsung phones compared.

iPhone 5 shots

Galaxy S4 shots

Both take amazing pictures in my opinion.

I also love that users are enhancing their photos with interesting effects. Apps like SnapSeed, Instagram, Flickr etc are making this easy. Too easy? Perhaps.

There are a lot of over-cooked photos on the web, but I think that these apps actively encourage people to keep taking pics, because they can get amazing results with little skill by applying some filters.

Here are a few more ramblings roughly on this topic:

Photographers are unusually quick to adopt the latest phone

It was also interesting to see the adoption of iPhone 5 climbing rapidly in the last year. Those Flickr users seem to upgrade quickly!

The Samsung Galaxy III adoption was equally fast over the Galaxy II.

I suspect photographers are a wealthy bunch who can afford to upgrade often :)

This doesn't fit what I'm seeing elsewhere. We have stats for all the apps we build at my company Pocketworks.

An example of an app that is used by a wide demographic in Leeds, UK.

So, Flick users are quick to adopt the latest and greatest in comparison the "regular" users I see. I wonder if Facebook will post similar stats anywhere...

"Cashflow is the killer" - that's what they say.

Sometimes bad cashflow causes problems you'd not even expect. It's like the butterfly effect. I discovered this whilst trying to solve a current business problem for my own business tonight.

So, our current problem is this. New projects are taking more time and effort "land" than usual.

This doesn't sound like a cashflow problem. But it is.

Symptoms

To identify this, I listed out the symptoms we're experiencing:

  • Lots of enquiries have come through. Great. We have a pipeline of potential sales
  • About 30% of these enquiries are highly desirable companies to work for. Great.
  • Proposals are taking longer to create than usual. Booo.
  • I'm giving a lot of free consultancy to potential clients in order to win trust. Hmmm.
  • One of our key projects is delayed, so we can't start. Hmmm.

Cause and Effect

So, I was scribbling out some cause and effect. I started out with these assumptions:

  • High quality proposals increase the time to land a project (to get an agreed purchase order)
  • Quoting projects that aren't a good fit for your company takes longer, which in turn slows down the time it takes to land the project
  • Giving away free consultancy slows down landing the project. Well, to a point. You have to build trust. But ultimately why would the customer rush to start the project if they're making some progress for free?
  • Working with more potential customers dilutes your time, which results in a slower turnaround on proposals, which delays landing the project

So, the question is. Why would anyone...

  1. begin to quote projects that are a bad fit?
  2. give away hours upon hours for free?
  3. work on tons of proposals at once without setting customer expectations for a delay?

After more scribbling and thinking, I realised the answer is. Drum roll....

Sales Pressure == Bad Cashflow

I found this when I started thinking about the rest of the business to answer these questions.

I decided I was quoting bad projects, giving away consultancy, and overloading myself for one main reason.

Sales Pressure. Basically, we need to sell in order to achieve a good cashflow.

But then I realised that my company is owed enough money to keep going for months. So it's not Sales Pressure that's the problem, it's Late Payments that are creating the sales pressure.

Causal Loop Diagrams - a good thinking tool

Here's a causal loop diagram I sketched whilst exploring the problem.

causal loop

What to do next?

So, what do do about that?

Well, I decided on the following course of actions...

  • Chase payments more aggressively (chasing, threats and penalties are the key options here)
  • Set client expectations for delayed turnaround time on their proposals
  • Ask clients to pay for further consultancy
  • For non-optimal projects, send out slightly less detailed proposals
  • Chase payments again :)

This would solve the cashflow problem, set client expectations, and divert unwanted business elsewhere.

Sell like you have £1,000,000 in the bank

That is an old saying. But something rings true in it. It's easier to sell effectively if you pretend there are no business pressures. For example, you won't make acts of desperation (like giving away valuable time), you won't take on projects you don't want, you won't waste time on proposals for projects you don't want, and you will confidently lead the client to success, rather than letting them take the reins.

I'll let you know how it pans out.

Summary

  • Businesses suffer from the butterfly effect. Problems in one area of the business subtly ripple through to other areas. They're not always easy to spot.
  • Sales pressure makes it easy to make bad decisions about your business.
  • Cashflow problems can cause sales pressure.
  • It makes it easy to say "Yes" too often. To take on too much work. To give away free time out of desperation to gain trust and land business.
  • Causal loop diagrams are a good tool for focusing the mind and exploring issues
  • It's best to pretend you have £1,000,000 in the bank when selling, but easier said than done.

So I've been thinking about causal loops lately, as you do. Studying cause and effect is a thinking tool I picked up when reading about systems thinking. It's cool.

Anyway, today I was thinking about how we could make our software company - engineroomapps.com - better in the future. This lead me to jot down some areas I thought were pivotal to our problems.

Reuse improves profit

Firstly, we have profit. I was thinking that if we can achieve reuse then there's a good chance we can improve our profits.

reuse causal loop

Reuse improves profit. This is a causal loop diagram

This means reusing code, processes, assets and stuff. This should make our value stream more efficient by giving us a form of duplication.

Slack allows reuse

The reason we don't achieve high reuse right now is down to having zero time. We basically spend every waking (or working) minute serving our wonderful clients. It's safe to say that, if we had some slack time, we'd be able to focus on other stuff.

slack in causal loop

The more slack we have, the more we can invest in reuse

Profit allows slack

Then comes the finale. If we have profit, that buys us some slack, which we can use to invest in reuse. This becomes a beautiful virtuous cycle.

profit in causal loop

The more profit we have, the more slack we have to invest in reuse

I was pretty pleased with this. It's kind of simplistic and obvious, but the fact it's a virtuous cycle gets me excited. That's the gold dust here.

If reuse is going to help us, then we need slack. And, if we invest that slack into reuse, we can continue to raise our profit margins.

Of course, getting enough profit initially to find the slack is the trick. This causal loop has to be kickstarted by cash investment, time investment, borrowing, or just good old hard work :)

Well, it's been almost 3 months since I started learning photography with the back-to-basics R-D1 digital rangefinder.

It's been fun, and I've been carrying the camera around everywhere like a mad man, reading books and farting about in Apple Aperture.

Here are some of my latest shots (more on Flickr):

Chair

Chair

-

York Minster

York Minster

-

Stairing

Stairing

Stalybridge Station

Stalybridge Station

-

End of a Long Night

End of a Long Night

-

Lamp Stand

Lamp Stand

-

I think it's getting easier to get results from the camera now, most of these were all taken on full manual control, I don't need the camera's help as much as I did when I got it.

I've been keen to get a new camera for a few years now, something more "manual" that would force me to learn a bit more about photography and also which would encourage me focus on composition rather than anything else.

It's been tough saving any money whilst on startup salary, but I finally cobbled enough together to pick up a 2005 digital rangefinder - the Epson R-D1.

R-D1

I'll post up my noob experiences with it, from the perspective of a complete novice. But first, some images from the first 24 hours of owning this camera.

Old Boots

Shoes

Wall Light

Wall Light

Gate

Gate (B&W)

Hall Window

Hall WIndow

Stairs

Hall Stairs

Hall Upstairs

Hall Upstairs

Light Switch

Bedroom Light Wwitch

Window

Hall Window (color)

Clothes (B&W)

Clothes Rack

Looking Up!

Hall Ceiling

Clothes Rack

Clothes Rack Color

It's obviously early days for me and photography, but it has been a lot of FUN getting my head around manual ISO, aperture, focusing and handling RAW files.