Category Archives: working

Thinking about a new Box

There is an interesting turn of phrase used to describe innovative thought:

Thinking outside the box

However when attacking a new problem, the first thing you do is to find the box. The box is the problem domain, the business problem or other set of boundaries.

They may be physical boundaries, or semantic ones. The scope may be based on one of the parts of the Iron Triangle (Time/Money/Quality), or some other metric.

Flipping this on it’s head, if someone comes to you and says that you have no limits and you can create anything you want… does your mind go blank ? Or do you have too many ideas ? Constraints help focus the development.

It seems not that you want to think outside the box, but you want to find the edge of the new box, the one that surrounds your problem. This box then stretches and resizes over time, as functionality is added, taken away, or even put in new boxes. Each box then turns into abstractions which in turn will live in a larger box.

The box is helpful for comprehension as it allows us to abstract concepts and then put them together at a higher level, after all this is how the diagrams for overviews are drawn.

Now, if you excuse me, I have a whole bunch of boxes to look at…

(picture credit: Box 5 by ~Brenda-Starr~, on Flickr)

One Size Does NOT Fit All

In a few posts on this blog I’ve tried to make the point that you need to know your local market. It seems Google are beginning to wake up to this… well, in Japan anyway, people in Eastern Europe or for that matter Western Europe will have to make do with an American viewpoint.

If you think about it, it shouldn’t be that unusual that a large corporation changes to suit it’s customers. But it is and it is noteworthy because it makes you wonder how many times a corporation has moulded the customers expectations to fit a “need” that is created for their products. Street-view has been a wonderful case in point in the UK and EU with people on all sides trying to determine the legitimacy of it – and in some cases the need for it ? Most times we need a map, not a picture.

How many times has a vendor pitched a product that will integrate “with a few changes to the surrounding infrastructure” ?

A sensible reason why competition is good

One thing I’ve noticed is that often larger corporations, especially those who have a large installed base seem to start “hating” their customers. Which is an opportune moment to read this.

Maybe I’m being a bit harsh. In media or TV it’s hard to determine what your customer wants, you can’t really invite several million people in and ask them. The first thing that might happen however is that your product design starts to reflect the “prejudices” of your business in terms of how you see your customers. The bigger the spread of “ability” – for want of a better word – the harder this is. If you sell something technology based, and your audience ranges across the entire population spectrum, you are likely to play to the majority share in that market, which can be frustrating for some as they think you are treating them like idiots, and others might think it’s too advanced.

The nice thing about competition is that it does work these niches out, and then provide impetus to address each part of the market appropriately.

The crazy thing is, your customers aren’t that bad. After all they pay you money. The tricky bit is figuring out what they want and what works for them.

Every Project Starts with a Deadline

Everyone in Software is familiar with the “Iron Triangle”, the triumvirate of Time, Features (Functionality, or Scope), and Resource. In summary, these are the three factors that control any project, altering any one of them always alters the effect of the others, with enough Features, Time, and Resource, you have a high Quality product.

In recent years all the various methodologies have focussed on trying the win the “Time” argument, to stop the idea of time limits being set up front and thus reducing the Functionality as the Resource is generally fixed (which even if increased may have less benefit)  which may in turn lead to a lower quality product.

This has lent some credence to a new myth, that projects don’t need to have deadlines or set time limits, and in fact shouldn’t have in order to create good “Quality” software.

And in the real world…

This is a joke. Let’s start from the very beginning, suppose you are asked to deliver a project, you will generally be asked three questions, never mind all the ones you should be asking, those three are:

  • How much ?
  • How long ?
  • Who do you need to hire/what do you need to do it (you could suggest this is how much) ?

Consider that everything you do has a deadline, even if this deadline is not the one for delivery. It is important to set a goal, and often this represents a line in the sand, where you can evaluate the progress and determine if you can proceed.

If you doubt this, consider what you ask the guy who comes to install your cable. If (s)he fails to turn up when they say or takes 2 weeks to wire a plug, you are not going to pay them. When you bought your house, your bank didn’t give you money that you could “pay back when you wanted”, they attached a timeline to it that reflected a best guess according to your capability to pay.

The Punchline

Your project has a deadline. It will always have one. Your aim is to have a realistic one, and that assumes the business understands what it is trying to have delivered. Even then a deadline is not your enemy, it marks a decision point for others to determine if they want the deliverable. It also acts as a focal point for your efforts, provided that the focus is not panic. There is no point in the argument of “it’s done when it’s done”, the money running out stops that dead. Remember the bank who lent you the money for your house, they don’t stop the clock because your job did. The bad news is that the bigger the organisation, the larger the number of levels that the deadline has been established over… so maybe the idea started at the board, so the CEO has a point in time in mind, then the Architects get the idea, and at some point there has to be a business case, and this will always need a deadline!

Practically, you have the following options:

  • Cheap and quick – may never get upgraded/fixed, but will do, soon find out how import the deliverable really is 🙂
  • No time at all – build a prototype, be upfront about it, if it works out, you can work on the full system, if not, well software doesn’t take up landfill.
  • No resource – establish your own timeline of what you need to achieve – if the shortfall is obvious, either you get more resource, or time.
  • Work nights! – this is not an option. Unless you are 20 and can work on 3 hours sleep, you’ll start spending 50% of your productive time fixing what you thought you achieved. Don’t do it. The odd hour fine, night, no.

Or hopefully:

  • Just enough of each of the three parts of the triangle – due to the business understanding what needs to be done and having funded/invested appropriately

Conversely:

  • Too much time – things wander and all three parts can be wasted.

Good luck with the deadline 🙂

Shaving Yaks or Stripping Doors

Well it’s been a while, and in that way I thought I’d talk about a little project I’ve been doing in the meantime. It’s interesting simply as an exercise for how a project unravels, especially if it is a learning exercise.

So what’s the problem

Ok, I have a bathroom with a door. No big surprises there. The door is a fire-door, this means it’s a fairly dense door with fire-retardant material and a chain linked to a (very) strong spring connected to the frame to pull the door shut. Parents hate these doors, as children will trap their fingers in the door at least once 😦

Now, the problem, both the door and the frame have been painted and repainted over a period of 4 years but not sealed properly, so wood stains and rust from nails in the frame are discolouring the paint, and the damp from the bathroom causes the wood to expand during the winter as it doesn’t dry out properly. To add to this the door handles have corroded and are starting to turn green rather from the original brass. Goal: as part of an overall renovation, repaint the door and replace the handles and hook in order to improve the bathroom.

Solution

Many possible solutions, I picked this one: Strip the door and frame using Chemical Paint Stripper, then seal and paint the door and frame and replace the metalwork with new handles and a hook.

Simple, eh ?

Ok… here we go:

How long ?

Should take a couple of days. Paint the stripper on, then strip the paint with a stripping knife and then repaint the door. Fine. Take the door off since it’s going to be easier to carry it downstairs to the garage, where it will be easier and less messy to do this.

First problem. Door is heavy. Very heavy. It’s a fire door! It’s not something I can carry downstairs and then 200m to a garage. Gah. Ok, get hold of a large canvas sheet with polythene backing and put the door on that. Paint the chemical stripper on. Turns out that one pot covers about 2/3 of one side of a door. Aaargh. Oh, and you need to leave the stripper for 6 hours. The fumes will also make you loopy.

Aaaargggggggggghhhhhhhhhhhhhh!

Carry on regardless

Ok, next day… get more chemical stripper, lots more. Oh boy, not cheap. Go over the rest of the door… whilst attempting to prop up the door. Paint the door frame and architrave with the stripper. Leave for 6 hours. Start attempting to take off the paint. Where it works it’s taking off the paint as a skin or powder, but it is patchy, and it hasn’t worked equally well, also the paint that it was trying to remove was not even… many, many hours are spent stripping the door and the frame. The fumes mean taking a lot of breaks.

After this… apply more stripper to take off the patches left… more fumes. At this point in September there appears to be no wind, so leaving the windows open doesn’t generate any draft to suck the fumes out. Things start to go woozy…

The Door

The door turns out to be a couple of layers of wood grain effect veneer on cardboard, with dense chipboard in the middle. I find this out by noticing that the stripping knife takes the grain veneer away leaving the “fluffy” cardboard. I begin to wonder why I didn’t buy a new door… then I remember on the occasion I looked at it and noticed it seemed smaller then the other doors in the flat I measured it on a whim and it was in fact 2/3s the width of the other doors. So it was smaller then expected… need to keep it. At this point it is no longer the weekend and various social engagements and the need to go to work get in the way. Together with my wife coming back home, and visitors coming, the door has to go back on the frame. It still has to be propped open which is inconvenient when visitors are around.

It is as I’m putting the door back on that I realise how strong the spring on the chain is. Top tip, when taking a fire door off it’s hinges, first take a nail or a screw and push it through one of the links in the chain nearest the door when the door is fully open, this saves trying to pull the chain back out and crushing your fingers when you fail. Count me as lucky here.

The Frame

The frame takes a long time to strip. Architrave is not a nice thing to try and take paint off. Eventually it all mainly comes  off. After a while the effort versus the gain weighs in favour of stopping. In hindsight, I should invest in a Detail Sander, which I would have used to get rid of the last few bits of paint. At this point two coats of primer/undercoat are being applied. 2 hours between each coat. More time… also the tin that covers 10m2 is beginning to look empty. Get new tin.

The Final Straight!

Ok, door is on frame, check, painted with 1 coat undercoat/primer, check, sanded down to remove most of the issues with the “fluffy” material exposed, 2nd coat undercoat/primer, check, new tin not needed, check, wood filler to correct holes created when new “privacy lock” was installed, check. Door closes…

AAAAAAAARRRGGGGGGGHHHHHH!!!!

Gah. Right, sand door. No. Hang on. Take spirit level. Check door. Door is – believe it – or not straight. Hmm. Check frame. Frame has a bulge. In multiple places, in fact the frame is pretty trapezoid… ok one more trip to hardware store for sander (and to return undercoat/primer). At the store we opt for a cheap planer instead. 10 minutes work later, and the door frame is fixed. So fixed, the door should never stick again. Re-paint.

Back to The Door

In the meantime I’ve added a hook to the back of the door replacing the old plastic hook – taken off long ago now –by creating pilot holes with a nail. Sue me, I’m not buying a drill with a 2/32” drill bit just for that. Hook is fine.

New door handles, same model as the old one… except the holes and dimensions have in fact changed without notice. NEW holes for handles. GRRRRRRRRRRR! In the process the bar (which had to be shortened as it is sold oversize !?!?!)  for the lock part of the catch is bent, so turning the lock is now very stiff. 😦

I still have a couple of parts to paint even now…

So what have I learnt

Projects can grow legs, without experience you can never plan enough up front, a 2 day job took me 7 days. Next time… well I would use a different approach, probably not involving stripping the door which from a cost and time perspective probably wasn’t worth it except for the odd dimensions in this case. The power tools would have meant a much better finish. All in all the end result is not bad, it’s not great, but it’s a lot better then the starting point.

Stuff to apply to projects in general:

  • Measure more – checking the frame and door upfront would have told me to need to plane the frame, checking the handles would have meant better preparation of the various pilot holes and filling of old holes.
  • Leave more time if you haven’t done it before – being over optimistic, nice idea, but you won’t be popular.
  • Cost/benefit – getting new tools and material recovery – is it really worth it ?

Oh, and while you’re here, I’m not endorsing any products here, just stating what I used 🙂

Do you have this document ?

It started as a question this morning as I made the usual coffee. The question being, why should I write documents instead of webpages or wiki articles ?

Over the course of a large number of projects, I’ve always had a Wiki around to document things in. I have to say I really like wikis although they do take up a lot more time then you would think.

When I’ve needed to actually distribute information, it’s always in a document. Be it .doc(x) or PDF.

The reasoning is pretty simple: ultimately a document is a solid tangible artefact that can be printed, signed, and filed. You don’t ask for your employment contract as a wiki article and when you buy a house you don’t sign into Google Docs to get the deeds!

So when are online tools good ? The cons for online articles are many:

  • Wiki articles are constantly in flux and need an editor to keep them sane
  • Pages move/get archived, become out of date
  • Blogs are great as journals but no good for documents…
  • Websites for wikis are often internal
  • Easily edited documents aren’t always the best basis for agreement between disparate parties.

There is a possible future where all our documents are webpages constructed on the fly from some huge database, but for now, I think I prefer the old-fashioned document.

In a project I like doing the following:

  • Day to day information (where is x, why do y etc), development, discourse, commenting etc – Wiki. This means you can keep it up to date (do you ?!)
  • Blogs – team blogs – in place of reports ? maybe, but remember that people talk to each other so their use is limited if the audience is internal
  • Design decisions/Contracts/Pitches/Version Controlled lifecycle documents – Document formats. While Wikis and so forth provide workflow and versioning, there is nothing quite as close or transparent to your organisation as having a document with a date and version on it. Everyone can see it, and everyone can reference (cite) it.

Now, there is one problem that electronic documents have that wikis do not. Where to store and search them… that is something I’m still trying to figure out. Maybe we can take some ideas from our older colleagues here, since paper file based systems seem to have had this figured out over time.

Chrome OS: VNC for Dummies ?

It had to happen, Google is releasing an OS. Their target is netbooks, small low-cost (and power) computers for those wanting something a bit bigger then a smartphone and smaller then a laptop.

Is this going to change my life ? Well probably not, much like Chrome, it will end up occupying the curiosity section at the back of the shop doomed to obscurity.

The key aspect of this OS is the idea that it will get you up and on the web in seconds, as “the operating systems that browsers run on were designed in an era where there was no web” (Sundar Pichai, vice-president of product management, and Google’s engineering diector Linus Upson). We’ll leave the fact that an operating system has nothing whatsoever to do with the web.

Bear in mind that Google’s key plan is to get their grubby mitts on all your data, be it email, docs, video, contacts, whatever. Whatever is information, they want it. With it they can keep making money via AdSense/AdWords. If they know your hobbies then they’ll want you to know about people out there who can help you with them.

This has remarkably little to do with an OS and yet I feel deja-vu coming on. Remember IE4 anyone ? Or Windows 98 ? The Active Desktop ? The idea that we were always permanently connected to the ‘net ? Isn’t that a Sun marketing slogan ?

The idea isn’t new, so will it stick this time ?

The main thrust I can see from all this is that Google is building a better VNC, all your applications are in their house, and your netbook (with Chrome OS!) is just a gateway to them. But here is the question, on the eve of the launch of a service that has gathered millions of mobile numbers without notifying their “customers”, do you really want everything you have on the web, and then – in the hands of someone else ?

Even if that isn’t a primary concern to you, the other key challenges to Chrome are simply the technical ones, unless they are going to emulate Apple, they will have to support the myriad of devices and drivers out there. If they do manage this, they may then still have to persuade people to develop for them. I do wonder if we are about to see someone overreach themselves. In the commercial world, this isn’t going to make a dent. In the netbook market it’s still interesting to note the lack of impact of Linux, and the fact that XP was preferred simply because it was familiar and ran all the applications important to the users.

Where am I going with this ? Well here is the main problem, building a “new” desktop/netbook OS in this day and age is going to be a thankless and expensive task. You’ll need to cover: Hardware Support, and have Applications built for you. You’ll need testing, for all the devices that you do (or do not support). You need a user base, for whom you offer something that they either can’t get somewhere else, or that you do better. You can also produce yet another distribution of Linux, in an already fragmented market. Somewhere you’ll also need cash to build this platform and the willingness of people to invest in building for a new target platform. While Google ticks many of the boxes, it does strike me as more of an academic rather then a commercial exercise to do this. Just because you can do something doesn’t mean you should.