The interview focuses on his, and 37signal’s, planning philosophy of which the crux is that too many people over plan and that the best way to progress is to plan loosely stay relaxed and adapt as you build, rather than deciding exactly what to build before starting and while in motion trying not to deviate from the plan.
Busting your ass planning something important? Feel like you can’t proceed until you have a bulletproof plan in place? Replace “plan” with “guess” and take it easy. That’s all plans really are anyway: guesses. I think companies often over think, over do, and over devote to planning. So next time call a plan a guess and just get to work.
Jason Fried, Let’s Just Call Plans What They Are: Guesses
When I read Rework I found it to be such an inspiring read that I read the whole thing in one session due to its brilliant writing style and structure – literary geniuses.
Finally, when interviewed, each of them seems to be obscenely cool and intelligent while maintaining a completely relaxed and down to earth attitude – demigods.
Check out this interview of David Heinemeier Hansson by Jason Calacanis that at times gets a little fruity:
Great article.
I’ve read up a lot on scrum, and have always had trouble imagining how to apply it. I am the PM on a small (5 people, but growing) digital agency. We mostly do projects in the size of $3000-15 000 range, and I have a really hard time seeing how we could benefit from going agile. We don’t always plan extremely thorough, but in my experience, most of what you mention is very easy for me to recognize and agree to.
Scrum sounds very promising, but for small to medium web projects it is (or atleast seems) hard to apply.
Sam, I like your article hear, it’s well thought out as always. In a recent proposal to a client I described our process as basically
Waterfall => Agilish => Waterfall
Where that represents planning & requirements analysis => design and development => testing and launch
In my opinion both ends of a project need proper planning, waterfall style executions for successful delivery of web projects for a client. You can’t really ‘do agile’ on planning – it always comes down to a step by step process. In the middle though, knock yourself out!
Finally it also doesn’t mean that whilst planning, a specification document doesn’t go through a series of quick iterations before sign off (very agile like) but each step comes one after the other?
Bit of a ramble? Yes. Make sense? Not sure.
Good article Sam.
@Adam, pleased you liked the article. It’s defintely a good idea to research all different types of methodologies, especially when a small agency as you need to be really flexible on a client by client basis!
@Rob, cheers Rob, you’re dead right about the planning at the start AND the end. I think I’ve only ever managed to close down web projects using a very structure end game – any deviation somehow always turns into the project crawling to end painfully slow.
Great article Sam,
I totally agree with you, I’m a big fan of David Heinemeier Hansson and 37 signals, but I do think he has a tendency to expect that his model fits all other businesses.
Whatever the case I think they are a great inspiration for anyone building a web apps business. It challenges people cut to the meat of things, build, don’t procrastinate and most importantly, be realistic, keep your expectations in check. I’m sure we all have plenty of examples of people who want their projects to run before they can even walk.
It doesn’t apply to all cases though, “just getting things out” can literally break your company if you aren’t careful. Planning, is absolutely essential if you want to avoid losses, when projects can carry this amount of risk (i think this applies for most agencies).
I find methodologies like agile or even scrum work only when you have a team that works well together, and they are the only stake-holders in the project.
Agile and scrum, are also good methodologies for fixing a broken client project. Not starting it.
In agencies, the waterfall model works best. You just need to refine it each time to make sure it works for you and your clients. Rigidity can be avoided by building in some flexibility, such as defining feedback/input points, and iterations if clients doesn’t like something. At the end of the day your goal as an agency is to keep your client coming back and make a profit off each project. Some rigidity is a necessary evil.
@Dimitri, you just got across all the points I wanted to, in a better way and in half the words – I salute you! :)
Great article, I was questioning my PM methods as I would be similiar to what you describe as Agifall! I would agree with everything you say where when you have a fixed price you need to detail what you can deliver or else it can ruin the project and relationship with the client.
Really enjoy your blog!
Amy
@Amy, thanks so much :) and believe me I know the feeling of questioning you’re own methods, in a way it’s why I started this blog in the first place. I was running things a certain way that I’d developed to fit a small digital agency’s needs but it wasn’t one I was reading about, it was Agilefall!
So I start a blog expecting to realise I am alone but no, there’s loads of us out there and many of us have organically developed a similar ‘methodology’ – it’s nice to realise you’re not alone huh :)
This post reflects where I am with regards to project management techniques and software development methodologies. We’ve just completed a project that finished a little late and over budget (I was PM and front end development). In the development of this project I used the waterfall approach. Truth be told it is all that I know and has stood by me many times in the past.
This time however there were a number of requirements that weren’t realised until during the development of the actual website. In reviewing what went wrong and how things might be improved going forward I see no need to use anything other than Waterfall. My improvements simply involve better handling certain elements of the project differently. I’ll not get into those here as that’s an internal thing.
Time and time again all I hear about in the development of modern web projects is ‘agile this’ and ‘agile that’. So I’ve been looking into that. At a very high level it seems like this idea of Agilefall would be the best method. By which I mean running the project at high level using the waterfall technique (reqs, specs, dev, etc) but using agile for the actual development phase of the project. However I do not know enough about Agile to know this for a fact.
I am now researching agile in more detail (‘Changing Software Development’ by Allan Kelly arrived in the mail yesterday) to see if I can understand it better. I am very curious to see how this plays out.
Excellent article by the way! Very interesting.
@Gareth, more interesting to hear how many of us feel and work the same huh! Thanks for you comments :)
37signals has done some incredible work and has paved the way for the rest of us web-based application developers to launch and grow successful products. But to blindly follow their philosophy is silly. You have to filter their writings through your needs, and when you do that, their views are not 100% applicable. We’ve ended up with a thousands of web sites that are basecamp clones redressed to represent someone else. But I think it’s time for someone to take the torch from 37signals and move on to the next thing, which in my opinion, is ending this trend of oversimplifying everything.
Thanks for the thoughts. I am sure they resonate with a lot more people than you think. We’re just not as vocal as the fanboys.
@John, too true. As with many topics I find there’s a lot of people who are of the same opinion but just aren’t as outspoken, or more to the point don’t know of an appropriate place to air their views, as opposed to the countless places to agree with trends.
Filtering what thought leaders say into a a version that fits your particular business is crucial in taking away what you need and moulding it into a valuable exercise.
Thanks for the comments John, wise words.
Hi Sam,
I have to say disagree with you on this one! I have been using an Agile approach for a little while now on a number of web projects for clients and have found it to be really successful.
Our projects have only two phases on the critical path: planning and production. Planning incorporates Discovery and IA. Production incorporates our development sprints and testing. (We also run a design phase in parallel with our planning.)
The key, in my opinion, is remembering that less planning isn’t *no* planning – ‘barely enough’ planning is what’s required. I still write a functional spec during the planning phase, but only include enough detail to get us by. The spec allows us to estimate with acceptable accuracy and to inform the client of the proposed functionality without going into deep detail that will likely change later on.
Just because you are writing a functional spec doesn’t mean you’re not being Agile. If you’re doing your best to keep documentation to a minimum in favour of collaboration and working software, then you’re being Agile.
Cheers for the thought-provoking article nonetheless.
@Rob, I actually want to hear from more people like yourself who do disagree!
So you guys start production with signed off designs and a high-level functional specification? Do you have separate front-end and back-end developers or developers that do both? How big is your company and what kind of projects do you do?
Hi Sam,
Our aim is to start production with the minimum of planning. I find that the sooner we show concrete work to the client, the sooner everyone engages and the more time is available to steer the project correctly.
With that in mind, we run a short planning phase which begins by identifying goals, users and key user journeys with the client. I write this up as a list of high-level ‘user stories’ that we refer to as the functional scope. From this document we sketch a site-map and do some paper-based IA sketches, only for the more complex user stories. We then review with the client and begin a second iteration, using their feedback to refine the aforementioned documents. (During this time we also design a look-and-feel for the site based on two or three key pages.)
This is usually all the planning we do before beginning production.
At the beginning of each production sprint, the user stories to be tackled are fleshed out in greater detail and discussed with the client where necessary. We ‘design on demand’ within each sprint as we understand the requirements more completely. We also test fully at the end of each sprint so we can show a fully working subset of the site to the client without undermining confidence.
All of this helps us be reactive to our clients changing needs without wasting time up-front planning features that change or are thrown out in favour of something different / better.
Hope that makes sense! I’d be interested to hear your thoughts. I work for a small agency with 3-5 people on a project at any time. We find it works best separating front and back end dev, though that’s not always possible.
Cheers, Rob.
@Rob, thanks for the detailed response… really really interesting. If your 3-5 people work on the project together I can totally understand how this production cycle works for you as you’re all on the same page – often in small agencies those 3-5 people will be working on 5 projects and just not have time to be so co-ordinated.
I really like the sound of your “relaxed” approached to planning though, it’s not a method I can map to any previous projects I’ve run and think “that would’ve worked”, but it clearly works for you so kudos!!
Has this ‘lack’ of definites ever caused you issues with any projects? Such as a client pushing a little to hard for scope creep?
I’m wondering if it’s just a completely different approach that if explained properly to the client, and managed well, can be just as effective – or is it the clients you have just differ from most I’ve had… are you working with start-ups mostly?
Hi Sam,
The media and entertainment clients that I’ve worked with (Virgin, Sky, BBC, etc.) have all been keen to take an Agile approach. Likewise with the not-for-profits and charities. Those that have refused to work with Agile tend to be public sector clients, such as local councils.
I believe an Agile approach can be beneficial for any project and the only obstacle to making it work is the structure of the client organisation.
If I am working with a small group of project stakeholders, it is easy to explain the advantages by saying, “rather than use all the planning budget at the start, we think it would be beneficial to start production earlier and save some of the budget so that we can be reactive to your needs as the project progresses.”
This is far more difficult if there is a complex hierarchy of managers and approval boards all hungry for documentation. This is the case for many local councils and the reason I use a waterfall approach in these cases.
Regarding scope creep, I think it’s more of an account management issue than a planning issue. Regardless of whether you have an infinitely detailed functional spec or a high-level one, if the client wants a feature that’s not in there, should you do it? No, if it represents a new user story or doesn’t help achieve the project goals. Yes, if it’s relevant, if there’s time and if it improves the client relationship.
Basically, having a high-level functional spec protects you from huge unplanned feature requests. Any disagreements over the smaller stuff won’t derail the project and comes down to an account management decision I think.
What are your thoughts?
Cheers,
Rob
@Rob, my thoughts are that your methods actually sound pretty sound, and to hear you will switch to a more Waterfall approach if need be more backs up your credibility of being a real world man :)
I must say I’m intrigued… I’m starting to think that with the right foundations set down between client and agency it is possible than I thought to use a kind of Agile approach.
A recent project of mine actually had no real budget for a full on spec and so a very high-level one was produced, as you say, to nail down the big rules (scope) and I simply made it clear that during development it would require both parties to just take a realistic attitude to any change requests – and what do you know, the project went well and the client was exactly that.
I’m thinking that perhaps I’ve worked in a more Agile way than I’ve realised in some cases – maybe it does depend heavily on two factors, the management of the process and the client, and having the right client.
Interesting reading. I’m an enterprise Java developer with years of experience in agile development. I’ve spent the last 10 years working for software development companies to produce bespoke software. Six months ago, after my then employer canned their next generation software and all the dev teams, I started work at a digital agency. My role is to manage existing Java projects, architect, design and implement an idea they have for their first ever bespoke software, and to introduce agile methodologies. It’s now become painfully apparent that the management structure here is naive and incapable of any proper management. Apparently, it is “rare” for people to work overnight, said one of the account managers, adding that in the last year they’d only had to do 4 overnighters. So alarm bells started ringing for me.
The first work I did for them was produce a Java web application which had been severely underestimated by several orders of magnitude — way before I started. However, the deadline was fixed, and after a lot of effort on my part, it was delivered only a week late. All interested parties were informed of the underestimation and progress along the way, but it was a case of “la la la, we’re not listening”. The late delivery wasn’t good enough so I got a black mark against my name. Left a very nasty taste in my mouth.
Nasty taste number two followed not long after. An account manager had quoted a client 6 days for adding a live news feed to a website, I guess, sometime in September. Beginning of October I was told that one of my developers was going on a training course for a certain CMS as the client’s web site was built with it. The course was a week and wasn’t anything to do with developing with the CMS Java API which we’d need to use. The expectation from the account manager was that my developer would return from the course and then spend the next 6 days implementing the live news feed. Extremely unrealistic don’t you think? Oh, but where’s the spec? Umm, there isn’t one. A spec eventually appeared on Oct 18th. The client has yet to review and sign it off. So, the last week and a half has been spent on the steep learning curve of the Java API and implementing pieces of the puzzle to prove we can do it — one of the CMS consultants said we were doing something rather difficult and he didn’t think it was possible so that we were on our own. Of course we had to discover sooner rather than later if it was at all possible.
Despite the account manager continually checking up, knowing what we were doing, the whole spec was suddenly meant to be finished this week.
Now they’ve decided that we’re not going to use the CMS API. So I’m off the project and one of the “traditional” developers at the company (i.e. PHP/MySQL sites and not Java-based ones) is taking over so that they can do one of the biggest hacks in history: introducing a PHP/MySQL stack into the client’s website. If I were the client, I know what I’d say.
So, in my 6 months experience of working at a digital agency, I cannot in all seriousness ever recommend working at one. I can’t resign from here soon enough.
@Java Biker, wow that’s some comment! But for some reason I find hearing stories, any stories, or other digital agencies fascinating (part enjoy the business aspect and part the gossip side I think :)
Regarding warning bells on hearing an agency never pull ‘overnighters’… I actually cant agree with you that this is always a bad sign – often it’s a good sign of company organisation / respect for employees. In my experience if a company constantly has to ask employees to work overtime then it’s a warning sign that something is very wrong somewhere in the organisation and needs addressing.
However, the fact you worked your socks off to deliver something that was underestimated and only delivered one week late sounds good to me. But just to put it out there, perhaps you were communicating your points in a way they didnt like rather than being wrong in what you were saying? I certainely have learnt the hard way on this one – always consider that’s the case.
Now onto bitter taste #2… this just sounds horrible and you know what, sometimes in digital agencies this kind of thing just happens. In this particular case it sounds like a failure in multiple areas, but one thing you can always be sure of is failure at a project / account management level will always fall on the production team hardest.
All I can say based on what you’ve said is it sounds like a rather poor quality management job done for this task and even worse communication.
If I was in your shoes I would probably bite my lip and raise this as an issue with my line manager, but I would bet they already know about the issue and have had discussions about – if they havent, then youre absolutely right to want to leave, but I would say that NOT ALL digital agencies are like this!!!
Sure they’ll be some serious breakdown in communications at one stage or another in any agency, as well as the occasional “WTF FML” moment, but I’ve never heard of any company that doesnt have these to be honest – the only thing I would say is if you really cant handle working with those kind of events happening you may be someone who is best suited to a corporate development environment? Somewhere with a lot of order and hierarchy? You may not get the advantages of working at a digital agency e.g. variety in work, deep end learning, project ownership etc. but you may get what you seem to be after, high levels of clear accountability on projects…
Confusion leads to confusion. You can’t blame 37 Signals when it’s the noise than the signal that confuses your insight to claim a ‘mistake.’
The noise are the folks that jump on the wagon; these folks are everywhere jumping on the next big thing without hesitation to go a mile to understand the inherent principles and fundamentals. They negate the scenarios and option to trial and error; opting to shout to the masses as if a t-shirt saying ‘go agile’ is going to make them friends.
In fact, Agile is a value or principle it is not management. People and collaboration over process and tools is not management of a project; it’s a principle, holistically a value to hold on to.
Agile Project Management isn’t scrum, as scrum negates the Business and Project level hierarchy of a project; you must not forget scrum is only the delivery layer; a project has 3 layers.
I’m using scrum for the delivery, and DSDM for the Project and Business Layers. It applies agile values with rigor of stakeholder processes and planning, though light. It hits home the content than context which costs the delays. Blind process is avoided.
I couldn’t recommend DSDM enough. 37 Signals applies only principles and values; it’s up to you to take them and allow that to assist your methodology and methods in project management.
@Alex, thanks for your comments. Don’t get me wrong, I don’t think 37Signals have made a ‘mistake’ – far from it. As I say in the article I think they’re amazing and shine a much needed breath of fresh air on the digital industry from a commercial perspective.
I also agree with you about the folk that will jump on any band wagon, and this article was targetted largely at them as a bit of a wake up call.
As for Agile being about people and collaboration, yet again I agree completely, however, there are many out there who would not see this as “being Agile” by the mere fact there are not 15min stand up meetings or if they see a GANTT chart at any point during the web project.
The fact you distinguish SCRUM from Agile shows you were not really the target for this article ;) As for mentioned DSDM, well, now you’re using big words my friend :)
I like the look of DSDM but would be very curious to hear what kind of projects you typically work on Alex. On paper DSDM looks like something that could work well with larger clients rather than start-ups.
Look forward to your reply, or if you’d prefer I could send you a Web PM interview sheet and publish it as an article where you could champion DSDM…
“37 Signals applies only principles and values; it’s up to you to take them and allow that to assist your methodology and methods in project management.”
A perfect summary :)
I don’t really have something to add here… sorry.
Just want to thanks Sam and other commenteers for the great insights I had after reading you all!
@Bruno, you’re welcome :) Nothing wrong with just saying thanks!
I totally understand about the desire to just roll up your sleeves and dive into a project with the Agile approach. It really is “cool” and appealing. In addition, I can totally appreciate the desire to bypass the arduous planning process in lieu of getting down to business. Let’s face it…it’s fun to create! It’s true, many a plans are wasted on ideas that never come to fruition. I hate that!
However… I think we can just put our stock in that age old adage “measure twice, cut once”.
“Do your planning and prepare your fields before building your house.” — http://bible.us/Prov24.27.NLT
@Craig, you explained the point of my post in a couple of paragraphs – I must work on my efficiency ;-)
I think, in short, Agile just doesn’t deliver value unless it is set up and run by the book. If you half-arse it – it just doesn’t work.
You do plan in Agile – but you do it almost constantly. This freaks out clients. They don’t want you to plan every two weeks or every morning – they want you to tell them how much it will cost and how long it will take at the start. Then they want you to just do it – without bothering them too much.
What I do think Waterfall can take from Agile, with regards to planning, is user-story based ‘features’ and ‘acceptance tests’. This keeps things in the domain of the real world and provides a language where the client, developers and PM can understand what’s being created, how well its going and how you know when you’ve got there.
@David
I completely agree with you. Some aspects of agile – be it scrum, kanban or any other technique – are very good, and could easily be implemented into waterfall.
@David, you’ve summed it all up in three paragraphs :) as usual it took me two million pages to communicate that very point – I need to work on my efficiency!
@Adam, absolutely agree. I’ve not yet come across a digital agency who uses Waterfall in the traditional sense at all. The less informed think it is because there are defined phases that run sequentially, but in reality in each of these phases there’s all sorts of iterative techniques going on.
Great article.
Just as you can have bad waterfall development (which led to the creation of agile methods), you can have bad agile development. Humans can distort anything, no matter how practical or noble.
@John, I totally agree, but it’s rare you find those “cool” folk complain about bad agile… usually because it’s not true agile, or because they don’t actually care and just want to be able to tell people they work “agile” :)