About laurie

Laurie is interested in combining business and technology. He blogs on Wildfalcon. You can also find him on Twitter. His is also a keen photographer and has written a book on Being a Photographer.

Transparent Companies: A Reading List

Over the past few years I’ve had an itch I’ve been trying to scratch, an idea that I was struggling to explain. I spoke to many people about it and did talks about it in front of interested audiences, but I never felt that I was getting my point across as well as I wanted.

Despite my failure to explain it, the idea has been gaining some traction, thanks to people better at explaining it than me. It’s been called open culture, its been called transparency or transparent companies and its been called teal.  Big companies like Buffer and Zappos have tried it. It’s the idea behind holocracy. I’ve been calling it agile organisation, because it embraces the best elements, at least in my mind, of agile software development. But I’ve now decided to drop that name as the comparison to agile software just gets in the way.

So here is a reading list. A set of the books I’ve found that best explains the idea I’ve been trying to explain, along with my narrative of how they fit together. If you only  read one of these books, make it Reinventing Organisations, it’s the only one that covers the whole subject. But please try to read all 4, ideally in this order. It will give you more answers while guiding you step by step through learning a new mindset.

linchpinLinchpin: By Seth Godin

For most jobs in the world, the “ideal employee” does the tasks described in the company’s policies and protocols, or does what your boss tells them to do. Using initiative is a problem, because it doesn’t fit in with the plan. Seth Godin argues that the future belongs to people to defy this “ideal employee” role. That to secure your future in the workplace you need to stand out, be creative, and become a linchpin your organisation depends on.

51n0IYg26ZL._BO2,204,203,200_PIsitb-sticker-v3-big,TopRight,0,-55_SX324_SY324_PIkin4,BottomRight,1,22_AA346_SH20_OU02_Reinventing Organisations: By Frederic Laloux

What happens when an entire organisation is made up of people who don’t need to be told by the boss what to do? Does chaos ensue or is there a way to turn that creativity into a productive organisation? Frederic Laloux explores not only how it work, both in theory and in practice, but also ties it in with sociological research into how the human race’s perception of the world is ever changing.

implementing beyond budgetingImplementing Beyond Budgeting: By Bjarte Bogsnes

If everyone in the organisation is doing what they think is right, and there are no, or fewer bosses, how do you budget? How do you control the flow of money out of a company? Bjarte Bogsnes explains that the idea of controlling the finances is counter productive. You can never control the future, which is what most attempts at setting a budget try and do. Instead you can explain the past (with great precision) and use that to give everyone the information they need to make sensible spending choices. No explicit top-down control of finances is necessary

nvc Nonviolent Communication: By Marshall Rosenberg

How do you get many people working together, with no, or fewer bosses and prevent arguments? Marshal Rosenberg shows that most communication can be violent or nonviolent, that it’s scarily easy to be violent most of the time, and that violent communication leads to the arguments.  Arguments can’t be eliminated, but they can become useful.

By |June 21st, 2015|Teal|0 Comments

Why is there a business technology divide?

Stop me if you’ve heard this one before: A developer walks into a business meeting and an argument ensues. The developer is furious about being asked to cut corners, write shoddy code and generally hack bits of software together in a way that makes a cheap plumber look good. Meanwhile the other side of the table is furious about the slow pace of development: the developers are spending weeks or months with no new features being shipped and nothing changing. The two sides have very different viewpoints on the best way to be successful.

Unfortunately, this isn’t a joke and there’s no punchline. It’s a very real problem in many companies. One I’ve seen many times. The business technology divide splits too many companies in half.

From talking to people on both side of this split it  come down to a lack of understanding, neither side “gets” the other. Each side has a different set of basic assumptions they’re operating from, assumptions about value generation, accountability, professionalism, motivation and many more. It’s worth taking a quick overview of the areas where these differing assumptions come up. Needless to say this isn’t a complete list, nor is any point true in every (or even many) companies, rather its a range of the sort of issues that might come up.

(more…)

By |January 25th, 2015|business-software divide|0 Comments

The 4 different types of software

You wouldn’t go into a Rolls Royce showroom and try and buy a cheap family car, nor would you go into a Ford showroom and try and buy a tank or go to a Smart dealership expecting to come away with a limousine. While they are all different types of ground transport they are very, very different things, generally speaking though, most people understand the differences and know what they are looking for when they go shopping.

Unfortunately software is somewhat more abstract that cars, and for many people and businesses, figuring out what sort of software they should be buying isn’t easy. If you don’t know the different types of software, and you don’t know how they relate to the problems you are trying to solve it can be a nightmare experience filled with hesitation, fear, and a range of prices and options confusing enough to make even Albert Einstein scratch his head in confusion.

What follows isn’t intended to be a complete, or even an accurate list of the different types of software, (that would be almost impossible). Instead it’s intended to be a useful list of different types of software. My hope is that it will help orientate you and give you the beginnings of a mental map you can use to find the right software for you.

Boxed Software

This is the software that until recently you could buy in a box at your local computer shop, it came with a licence key, a disk, and an instruction manual. Today its more likely that you would download it off the internet and install it on your computer, but to be honest that’s a detail. This type software does one particular task, and if you need to do that task then you should buy a copy of the software.

Famous examples of this type of software include:

  • Adobe Photoshop which is for performing a range of photo manipulation tasks
  • Microsoft Word Which is for doing all range of tasks involving writing and manipulating text
  • Filemaker Pro Which lets you store large amounts of arbitrary information in a way you can search later

For many years Microsoft was the biggest producer of this type of software, and it was highly unlikely that there wasn’t a Microsoft product that would do your task, whatever it was.

Online Services (SaaS)

Online software services, or Software as a Service (SaaS) are software tools that live on the internet, rather than being installed on your personal computer. Some of them do a specific task, just like boxed software, but the most successful ones let many people use them at once, and collaborate to do either a single task, or a set of related tasks. Sometimes you have to download and install a piece of software to access the service (like with Skype) and sometimes you visit a web site to use the service (like with Facebook). When you have to install software, that’s an example of boxed software whose task is giving you access to an online service.

Famous examples of this type of software include:

  • Google docs, which lets people create and edit text documents, and spreadsheets. (Despite bing a different type of software, this is in competition tools like Microsoft Word. Microsoft has since brought out Office 365 which is an online service version of its office software.)
  • Facebook which lets people share whats going on in their life, and chat to each other
  • Salesforce which lets sales people keep track of the potential customers they are talking to

With most examples of online services, the user can customise some aspects of how they interact with the service, but can’t do much to change the way the service behaves. If that were possible it would change the way it behaves for all users, which would only lead to mass confusion.

Customised Services

Customised services are types of software that allow you to create your own online service. You obtain a copy of the software, install them on an internet connected computer and then access them from any computer on the planet. Because it’s your own service you can customise it to work differently from other copies of the same service. Most software of this type is intended to be easy to customise and extend, and can sometimes be made to do a large range of different things, but there are limits to how far it can be customised effectively. Try and customise it too much and you will end up beset with errors and bugs.

Famous examples of this type of software include:

  • WordPress which is fundamentally a blogging tool. An installation of wordpress lets some users write blog articles, and other users read those articles. WordPress can be customised with features such different visual appearances, social media integration, and even shopping cart / e-commerce features. (WordPress is also available as an online service, giving you a choice of which you want to use.)
  • Joomla which is a content management system (CMS). An installation of Joomla allows some users to add content, which can be text, videos, pictures and so on, while allowing other users to view that content. This can be used for anything from running an online magazine, where the content would be the articles, to the website of a company, where the content would be press-releases, white papers, and so on. Joomla can be very extensively customised with add on modules, that add many new features, like learning management systems (helping users learn specific educational content)
  • Jira which is a tool for tracking bugs and tasks inside a software development project. Jira is now available either as an online service or as a customised service.

Customising a customised service can be done in one of two ways. Either by installing extensions or by paying a developer to write some custom extensions for you. Most examples of software like this have both a range of extensions available, and clear documentation for developers working on creating their own extensions. Typically when the same software is available as both as online service and as a customised service then the customised version will allow much more customisation.

Bespoke software / service

Bespoke software is where you get to throw away most of the rules. You need a team of developers, and to understand how to work with them, but you can build almost anything, as long as it’s within the range of reality. You can choose to either build it as a installable program (like boxed software) or as as a service that can be accessed over the internet.

The main difference between a customised service and a bespoke service is that with the customised version you start with a piece of software which already does something, and with the bespoke option you start with nothing. The developers have to build everything, either from scratch or using frameworks and libraries (bits of code that make the task easier and faster). This can be slower, but provides a lot more flexibility if you want your software to do something unique.

Deciding whether you should start with a customised service and customise it or start from scratch is a very difficult decision, and one you should take advice on.

Summary

Most companies will find they need to use a range of different software to find the best way to get their work done. A typical range might include Microsoft Word (boxed software) for creating letters, Gmail for emailing the outside world (online service), WordPress for running their company blog (customised service). Many companies have also brought bespoke software to help with the most unique parts of their value chain. For example the software that Uber uses to decide when to start surge pricing will be bespoke software.

Some companies start out doing their core activities manually without software, then start to replace parts of their workflow with either boxed software or services, before eventually commissioning some bespoke software. Other companies are in a position to start building bespoke software much sooner. Whichever you plan to do I suggest to take a look at 5 Steps to better business software for some pointers.

By |January 18th, 2015|Software|0 Comments

What’s the right scrum team size

Building a software team is a bit like cooking a meal. You can do it in a simple way, or you can do it in a complex way. Think of it a bit like roasting a shoulder of lamb. You could go the simple route, and season it with rosemary, or you could go the complex route and season it with rosemary, thyme, garlic, lemon, lime, sugar, ginger, tarragon, paprika, balsamic glaze, mint and chocolate. It might be the most amazing combination of flavours, or it could be a total disaster. Getting all of those flavours to blend together well is going to be challenging to say the least

Building a team is very similar. Instead of flavours you are merging personality traits, working habits and skills. The more people you add the harder it becomes to find a combination that works well. More people mean more ideas, more creativity, more conflicts and more messy human emotions. Over the past few decades a lot has been written on the subject of how big a team should be, and why bigger teams are not always a good idea.  Amazon CEO Jeff Bezos famously likes two pizza teams, teams that can be fed with just two pizzas, and the classic book The Mythical Man Month gave us the now famous saying “adding more people to a late project just makes it later”. Scrum talks about the right scrum team size being 5-7 people at most. Since adding more people makes things too complex to be functional, stick with smaller teams.

I’d say that this is a pretty accepted conclusion in the world of software and programming, which is why I wish I could say I was surprised when I overheard someone recently talking about a project in their company:

 You won’t believe how complex this project is. We have over 400 developers working on it, and that’s still not helping.

Four hundred people! 400! With that number of people I’m struggling to believe there is any chance the project won’t be beset by complexity. If you don’t believe me try and get 400 people to do something simple, let alone something as complex as a software project. What really makes me sad though is that this isn’t an isolated event. I’ve hard many stories of such large teams working on a project. The myth that more people means more speed is still very much alive and well. There is an idea ingrained in our thinking that says if some developers are good, then more developers must be better. And we all want to be better, so lets get more developers, because it’s, well, better!

Of course, no matter how hard you try, a team of 400 people is not a small team. It’s not a team you can feed with two pizzas. It’s too big to be a team that has any chance of working well together. So the typical response to being better by adding more developers is to create 10, 20, 30 40 or even 50 teams, all working all on the same project. Although the size of any one team is now small enough to avoid complexity, you end up having exactly the same problems between the teams. There are just too many teams for them to work well together.

So how do you deal with this? A number of agile development methodologies (like SAFe) teach how to scale the number of teams, I’m not convinced. The error is in the assuming that more developers is better when in fact it’s worse.

A few years ago I was working on a project that demonstrated this perfectly. A software component was being extended by a team of 15 people. The team had a list of critical features they needed to add, and the first one was expected to take 2-3 months. This was too long and so we went looking for alternative solutions. There was another, smaller team available. This time of just 2 people. They guessed how long it would take to build a system that copied all the existing feature and added all the needed features. Their guess was 3 months. In that time they thought they could reproduce all the work already done, and outpace the existing team in adding new features.  They got the green light to go ahead, and in just 2 months had overtaken the existing team.

You can argue that the new team had some unfair advantages. You could say they were better developers, or that they had the freedom of working on a new code base rather than a legacy one. However neither of these arguments really explain why they were so much faster. That can only be explained by the way they were much more clearly aligned on what they were doing, and how they were not getting in each others way.

So what is the right scrum team size? As small as you can manage while having all the needed skills within the team.

By |January 11th, 2015|Development|0 Comments

5 Steps to Better Business Software

Everyone knows that using the right tool is essential to doing a good job. Trying to hammer a nail in with a screwdriver is an exercise in frustration, and trying to tighten a screw with a hammer isn’t going to end well either! Whoever has the right tool is going to do a better job.

The same thing is true with software. Using the right software for your business is just like picking the right tool. The right software can make it easier for you and your team to do the right thing, whether that’s follow up on customer complaints, deliver the right end product to the right customer or make sure you remember to order the thank beers you promised your team for last week’s hard work. With the right software, all your tasks become easier, more cost effective and probably more fun too. But to pick the wrong software when your competitors pick the right software is to let them have then an unfair advantage, and that’s never a good idea.

So how do you make sure you make the right choices, and make sure you have better business software than your competitors?

  1. Understand your work
    All the work you do can be broken down into a series of sequential steps, sometimes called a workflow. The steps that whoever does the work has to follow. It’s important to understand these – what are they and how long do they take. It’s important to remember that the people actually doing the work will always understand them better than any analyst can do. So make sure you speak with the people who do the work, and preferably have at least one of them working with you to make your software choice.
  2. Find software to improve one step of your workflow
    The temptation is to try and build software to help with every step of your workflow, but that’s a mistake. It makes it hard to work out what works well and what works poorly, as well as adding a lot of complexity in finding (or creating) software that can do the the entire workflow.

    Instead pick just one step of your workflow and use software to make that faster/better. The step you pick should be the one you think its most amenable to being done better by a computer. There are some tasks computers can do many times better or faster than a human, while other tasks computers will never be able to do very well. No computer is ever going to make an upset customer feel better. Computers are really good at tasks that involve repetition, accuracy, or large amounts of data.The step you pick to improve is closely related to which tool you choose.

    You can use an off the shelf program like a spreadsheet, or a custom written piece of software. Doing this well requires a good understanding of what’s possible with technology. If in doubt get advice from a technology expert who can help you figure out what’s easy, whats possible, and whats impossible
  3. Wait and review the results
    Once you software is doing, or at least augmenting, one step of your workflow, wait a bit and measure how well the entire workflow is working. A common mistake is to just measure whether or not that one step is working better or not. Tempting as that might be, I don’t think it’s something you should measure. It doesn’t matter if one step is working better if the whole system is working worse, and sometimes that happens.

    If you improve one step in your workflow that affects several other steps. This happens because the steps connected with each other and are not independent. Sometimes those effects are beneficial to the entire system, and sometimes they are not. The quickest way to find out is to make a change and watch the result. If the result is negative you can either undo it, or tackle another step in your workflow, if you think fixing that will be better.
  4. Rinse, repeat and simplify
    You can repeat the steps above as many times as you like. As you do you will find that the complexity of your software begins to grow. This is probably because you are using a different software tool for each step in your workflow.

    Every so often it’s worth getting all your team together and reviewing the benefits in your workflow, and comparing them to the complexity of your software. Maybe using the same tool for every step makes some of the tasks a bit harder, but the time saved switching software makes up for it. As a general guideline, simpler software is better. As Einstein said “Make things as simple as possible, but not simpler”
  5. Review regularly
    Now you have software working for you, you need to keep an eye on it. It’s a frustrating fact of business that things change. Customers want new things and you need to change the work you do. So you can’t get away with not changing your software. Keep following the process above and allow your software to evolve over time. If you stop, your system will get out of date, and will start to hold you back rather than helping you lead the pack.
By |January 5th, 2015|Software|0 Comments

Kanban Check – A daily overview of Kanban

It’s pretty tough looking after 9 projects, a lot of things to keep an eye on. It’s even harder when some of the projects use a totally different process to the others. We are a Scrum shop, we follow the scrum process – mostly. Recently a few of our projects started to use Kanban, which is a learning experience.

Keeping an eye on 9 Scrum projects is made easier by the Scrum Check that Gwyn put together. A simple checklist of things to look for each day on each project. The idea is that as it’s so easy to miss things that are not there, but should be, write out a list of what should set up, and check it each day. That way if I forget to send out invites to the next demo (for example), it turns up in the Scrum Check.

Kanban is a different process, which leads to the question of what things should I be looking for, on a day to day basis, to give me an early warning is the process is derailing.

At a first iteration, I have the following checks, (if the answer to any question is no, then thats a sign something might be wrong, and I need to investigate)

Daily Checks

  1. Can I see the Kanban Board?
  2. Has it changed since yesterday?
  3. Are any of the columns empty?
  4. Are all of the columns under the WIP limit?
  5. Do the columns actually describe the flow of work?
  6. Are all stories unblocked (by a definition relavent to that column)?

Weekly Checks

  1. Is there a demo booked in the near future?
  2. Does the client/product owner know how quickly stories are progressing though the board? (The cycle time)
  3. If there is a deadline, do we know what stories need to be done?
  4. Does the recent cycle time predict the stories for the deadline will be done on time?
This checklist is a work in progress. I’m going to be using it on the Kanban projects I can see in the next few weeks. But in the meantime if you disagree with anything, or think I’m missing something, tell me about it below – all comments welcome on this one!
By |September 26th, 2011|Entrepreneurial|3 Comments

The changes to Facebook are not enough

Once again, Facebook has rolled out some new changes, and once again my news stream is filled with updates along the lines of “Facebook has ruined MY internet” (come on, it wasn’t intended as a personal insult). The changes in question are the addition of lists as a first class entity (in the interface – they were there in the features before), some automatically grouped lists, and the idea of top stories. Actually there is also the new Subscribe button, but judging from the majority of the messages I see, that hasn’t been noticed by most people. I’m in a different camp though, I think the changes are a step in the right direction, and my only complaint is that they don’t go far enough!

I used to work in a social network startup, we were going to take over the internet, and replace Facebook as the number one social destination, along with every other social network startup in 2007/2008. We really didn’t understand marketing (specifically that “Naked” was a really bad brand name) nor did we understand just how complex the technology behind Facebook was to reproduce, which is why we went out of business. We did understand one thing though, which was that as more and more people use social networks, the signal to noise ratio is going to get worse, and controlling what messages you send to who, and what messages you get from who is going to be more and more important.

The Problem

I use Facebook, and I use Twitter, and I have dabbled on Google +, and they are all struggling with the same problem. Let me try and explain what that problem is.

I send and receive messages on a few different subjects: Dance, Photography, Agile development, Web development and personal stuff (such as going for a beer this evening). Also, I am friends with Haje, who sends messages on a range of different topics: Photography, writing, travelling, and going for beers this evening. All three social networks let me group my friends (Facebook and twitter call this lists, and Google + calls it circles, but they are the same thing). I can put Haje in my “Photographers” List/Circle, and I can put him in my “Beer Buddies” List/Circle.

All three networks are encouraging us to group our contacts like this, it means I can then filter what I see (which in turn means I get more out of being on the network and I will come back). I can choose to see just my photographer friends, and catch up on photography, or just my dance friends, and catch up on dance. This is great, and is what Google + and Twitter have had for a while. Actually Facebook had it for a long time too, but their interface was terrible! So bad that very few people even noticed the feature (all this latest change really does is show off that they have the same features as Twitter and Google +).

This is actually pretty awesome, when Haje posts an cool post about photography, I can find it easily in my “Photographers” list.  However the messages he sends about writing and travelling, which are not my thing (nothing against what he says, its just a subject I’m not interested in) or about meeting for beer  (which I am interested in) all turn up in my photographers list . This is just wrong, It makes my “Photographers” list harder to read, because, guess what, most photographers talk about other stuff too! (Not all of them – but that is another story).

It gets worse. Because Haje is in my “Beer Buddies” list, all those same messages appear in that list too. I just read them in my “Photographers” list!

My friends are not one dimensional

The idea of grouping friends into lists really doesn’t work, because my friends are not one dimensional people who only have one type of relationship, or one thing they are interested in.

What is really needed, is a way to set up lists that filter posts not based on who they are from, but a combination of who they are from, and what they are about. That way I can go to my photographers list, and just see photography based messages. That would be something I actually find useful. Twitter has hashtags, which are the closest I have seen to this, but they are not good enough. The message sender has to tag what subjects a message is about (hard enough with compose a message in 140 characters, try categorising it too!), and I have to be listening to that *exact* tag. Plus at the moment it only lets you filter by hashtag, not by a combination of hashtag and people you follow.

To be fair, what I’m asking for is hard, really very hard. Think of something difficult, and its a lot harder than that. But I’m pretty sure that whichever of the three big social networks gets there first, is going to take a big lead.

 

By |September 21st, 2011|Technical|0 Comments

Creating a webapp is creating a startup

Graph with stack of coins

Photo: teegardin

Do you think of writing a webapp in similar terms to creating a startup? I think that they are in very similar. Let me explain to you why, and see if you agree.

I’ve been building and coding webapps for many years now. I have experience of working in a startup that went bust, and I have experienced working as a consultant helping other businesses create their webapps from first principles, as well as working for large corporations building large application. I have build several side projects, and tried running them as businesses, including my latest project, Frozen Event. So I think I have a pretty good range of experience to draw from to back up this argument.

What is a startup…

In order to explain what I mean, let me first explain what I mean when I say “startup”. I’m thinking of something different to what I suspect you are picturing right now. It’s not about being cash strapped, or working out of your parents basement. It’s more about trying to build a business. Building a way of doing work you can in some way sell.

But what does “Building a way of doing work” mean? If you think about any successful business. They know how they work. Anyone from McDonalds to the tailor who makes my dance trousers. They know how they greet a customer on first contact, how to market to them, and how to reliably deliver the product the customer wants. All of this together is “a way of doing work”.

Now think of a startup (it doesn’t matter what industry). They are figuring this out. They don’t yet know what marketing is going to work, what steps are needed to time and time again deliver a reliable product. This is the essence of a startup. They don’t yet know how they work. But they are in the process of figuring it out. Once they have figured it out, they are not longer a startup.

What does that have to do with webapps?

Can you say that the code is the most important part of any webapp you have launched? I can’t, in every example I can think of, the most important part is the way the user experiences the site (I’m not talking about UX, but what I would call concept design). It is also normally the hardest part to get right. Building a webapp for a clients lets me see this time and time again on a variety of different projects.

Typically we start off with an idea of what we want the site to achieve, maybe it’s to increase the number of phone calls to a bookings service, or encourage more sales for an e-commerce site. Sometime we will also have an idea of how to do it, but not always. As we build the site, we start to think about questions like “Does the user need to log in in order to do what we want them to do?”, “What happens after they take whatever action we are trying to get them to do”, and similar questions.

Let me give you an example. For Frozen Event (a site which allows photographers to sell photos) I’m considering some from of bulk discount. Something along the lines of if a user buys one photos the price is £2, 5 photos is £7 and 10 photos is £10. But there are several things I don’t know… What if a user buys 5 photos from one photographer, and 5 from a second photographer. The user is likely to expect to pay £10 for 10 photos, and each photographer is going to expect to receive £7 for selling 5 photos. It’s not immediatly clear how to resolve that.

The specific questions can vary a lot from site to site, and each one has to be considered on a case by case basis. However in the early stages, we don’t know how they work. At least not yet.

Can you see the analogy yet – how this is the same as a startup? We start of not yet knowing how it works. As we proceed into the project, it is a task exploration and discovery. Working out what it is we need to do, and how it needs to be done. There is no predefined set of steps to take, no map. Because if there were, then we would just be duplicating a system that already exists.

At least, that has been my experience of building webapps, it is also why its always interesting. Each new project brings a new set of questions, and a fresh set of chalenges to keep me fresh. If you have had a different experience or viewpoint I would love to hear it in the comments below.

By |September 10th, 2011|Entrepreneurial|0 Comments

Deploying with Foreman in multiple environments

Foreman is a gem that allows you to define what processes an (rails) app needs to run. For example background workers, pubsub etc.

Typically I like to deploy my applications to at least two environments: staging and production, not to mention running it in development locally. I had to do a bit of wrangling to get Foreman to do this. Specifically I need to start my services using different rails environments, and Foreman does not seem have have built in support for this. (Heroku seem to not care about environments in the Procfile  – I assume they have their own magic way of dealing with this)

First I set up a directory

config/procfiles

and in there I put the following to files

production.proc
-------------------
worker: RAILS_ENV=production bundle exec rake jobs:work

and

staging.proc
---------------
worker: RAILS_ENV=staging bundle exec rake jobs:work

Then I added the following Capistrano tasks into deploy.rb (which handle installing and restarting the processes as upstart scripts on my server)

  namespace :services do

    desc "Restart all the services"
    task :restart do
      run "#{sudo} restart #{application}"
    end

    desc "Wipe and recreate the upstart scripts - (also restarts the services)"
    task :reinstall do

      raise "STOP!!!" if application.nil?

      begin
        run "#{sudo} stop #{application}"
      rescue
        # don't care if we can't stop. just means it wasn't running
      end

      run "#{sudo} rm -f /etc/init/#{application}*"

      run "cd #{current_path}; #{sudo} bundle exec foreman export upstart /etc/init -a #{application} -f #{current_path}/config/procfiles/#{stage}.proc -u #{user} -c worker=1"

      # Insert command to start service at boot time NOTE this does not work on the mac version of sed which is not GNU sed
      run "#{sudo} sed -i '1 i start on runlevel [2345]' /etc/init/#{application}.conf"
      run "#{sudo} start #{application}"
    end

    after "deploy:update", "deploy:services:reinstall"
  end

Now I can run cap staging deploy (I’m using capistrano-multistage) and it will stop all my services, setup up the right upstart scripts (in case I have changed the Procfiles) and restart my services

By |August 4th, 2011|Technical|2 Comments

Standing room only – a new use for Coke Cans

There are many things you can do with a Coke can or two, or 48 in this case. Olly decided to try a new lunchtime exercise…

We all know prototyping something is the best way to find out quickly if its a good idea, and it turns out it only takes 48 cans of coke  and a spare desk-top to convert a normal desk into a standing one…

 

Let me know if you have tried working with a standing desk

By |May 12th, 2011|Entrepreneurial|1 Comment