Hacker News new | comments | show | ask | jobs | submit login
This is how we work with clients (elweb.co)
64 points by flexterra 1605 days ago | hide | past | web | 37 comments | favorite

I know the flow, use one myself for one of the biggest corporations out there. But in my experience it's more "This is how we wish to work with clients". I see a lot of "squeezing the agency" going on these days. (As in non-paid extra work and revisions despite agreements on how to work).

One of the biggest mistakes that agencies or freelancers make with big corporations is to assume that their direct point of contact is able to call shots, or is fully empowered to render decisions on behalf of the client. For the most part, the bigger the company, the bigger the bureaucracy is likely to be, and thus the less true this assumption will be.

If at all possible, try to figure out where your day-to-day point person sits on his company's totem pole. How many layers are on top of him, or next to him, or between him and "Yes" or "No?" Make absolutely sure that a verdict from him, at any stage in any process, represents the verdict of anyone whose consensus or approval he needs. It's very easy to get burned when your point person renders a decision, then you find out two weeks later that his boss's boss's boss just got back from a two-week business trip and is looking at everything for the first time.

Agency squeeze is usually the result of internal politics at the client firm. Either someone's throwing you under the bus to cover his/her ass, or the Big Boss is putting pressure on everyone (including the agency) to deliver additional work, outside of the SOW, for the sheer sake of applying pressure.

The initial agreement needs to specify the responsible contact person in the ordering company with the authority to approve each iteration. Once it's approved, it's approved - the company gave him the official final vote.

You are getting written agreements before investing any significant number of hours, aren't you?

This isn't that realistic in practice.

You're going to run into one of two scenarios. First they agree to have a person with the authority to approve, but that person has to run around and gather internal approval before they sign off, and you're now stuck in the same situation you just have a designated "approver" but without veto power.

Second scenario. They just don't approve that language in the contract. We have lots of brilliant language like this in our boilerplate contracts, but most of the time it just comes back deleted. We can haggle back and forth on it a while but eventually if its a big enough deal, we're just not going to decline a large contract because their approval process sucks.

What does it matter how big the deal is, if you don't get paid?

That's what deposits are for.

We generally get a pretty sizable chunk of our fee up front (25-50%) and before we first hit design reviews. If crap goes sour during design review we're already holding their money. Now we can still have done more work then they've paid for but at least some of that risk is mitigated while we settle the rest in the courts.

I should note that we're kind of young, but this has never yet happened to us.

It's important to set limits and explicitly say that changes made after approval will cost extra. Otherwise, they'lll just push you to do as much for free as they can get.

Yeah there's some stuff here which we won't see fly with our clients.

Every step has at least 2 iterations.

Sounds great but whats an "iteration"? Is a design of a whole website? What if they want a few tweaks on the about page after the second iteration because that area wasn't fully fleshed out originally?

We also explain the client that anything that does not get revisions or comments from them is automatically approved

Never, ever will this language be approved by our larger clients. We can sometimes get "deemed acceptance" language by but its never "immediate" its usually like "if no feedback is provided in 15 days". The alternative is to have a "pause clause" in (if you don't get us feedback in 15 days we have the right to put your project on "pause" until we can get back to it)

There's always an "Oh, I thought of one more small thing..."

Or the "YOU forgot about my remark 3 weeks ago regarding the -insert little detail that doesn't mean jack sh*t but I want it done anyways- ... (Sorry to rant)

Indeed, and that usually becomes a problem at any stage of the project, usually converting it into a longer project, and if you're not careful you will surely loose money and precious time.

Agreed. I'm doing freelance for a huge corporate client. There was a nice plan and schedule for feedback and revisions. I'm now on the 8th round of changes and all the different departments weight in.

I have met these guys in Puerto Rico (which has a great emerging startup scene) a few times. They are by far one of the top UI/Django pairs I have ever met, and could give any agency a run for their money. If you're looking for some smart guys, consider them.

It is great how everyone describes their "process". In the end, it doesn't mean a lot because it will all depend on the mentality and knowledge of the people working in that process.

At the point where people are using "the process" and not their brains and common sense, it will cause a disaster and you have to re-invent "the process".

There's a difference between "following a process" and "following THE PROCESS".

Outlining the working process means that I and my client have an understanding, and that they have less grounds for being surprised about getting a larger than expected bill. It forces the client to be disciplined in their own behaviour, which they wouldn't be without a process.

On the flip side, demanding clients fill out Form 27-B for Change Requests every time they want something changing is way, way over the top.

In addition, a process can help give a client some confidence that you know what you're doing. This is especially true in the technology business, where clients tend not to really understand what they're working with.

The root cause of all the symptoms that you are describing is that your client hasn't got the proper knowledge, experience and mentality to (co-)develop something innovative.

How exactly is "a process" going to change that so rapidly?

(I haven't a simple answer and I am also struggling with this problem..)

I think clients in this area tend to not want "innovative". From my (admittedly limited) experience, most clients want "a website". A process can help the user understand what is needed to go from nothing to a website.

It works well when the website is an aside to their goal e.g. selling watches. The website is merely a facilitator to this. By setting a process, you can gauge your client's capacity to work with you on the project. If they don't like how you do things, you can compromise or part ways, amicably.

If you are building the product that the client will sell directly (e.g. a web service) then I believe that a process alone isn't going to overcome the fundamental difficulties of the project - namely that your client is probably selling something that they don't fully understand.

We too employ a 2-iteration process to the design/UI/IA stages, however I don't understand why the client should still have the option to make 2 iterations of changes during the development and especially deployment stages of a project.

The elweb illustrated process appears to miss out a key section - functional specification. We derive our func specs from scoping meetings, navigation structure, required content etc. which is then presented to the client along with user journey flow diagrams. This is presented and discussed before the design stage - thus the functionality is agreed upon far before development happens.

With this approach we don't run into the situation where the client wants to make changes during development which could potentially greatly extend a project's timescale (cost is less of an issue as it passed onto the client anyway).

The process shown on elweb is just to illustrated the 2-iteration process, not a concrete example on how to make a website, more like an example of using the 2-iteration process on various steps of a project.

We run an Agile process where the client is involved as Product Owner in the team. The client can add stories at any stage, and set the priority in the backlog at any time. They just can't change the current sprint's stories and priorities. That way they can make as many changes as they want, and the impact of those changes are always visible.

Why limit the client to an arbitrary number of changes (like 2 in this example?) The whole idea of Agile development is that we cannot know everything in the beginning, so we spec as much as we can in the beginning, and leave room to change our minds at a later stage.

Of course, we explain this way of working up front as well, and we make the benefits clear to the client. They have to buy into this before we start with anything. It works very well when they do buy in though.

Explaining how you get buy in would be a much more interesting blog post. The person footing the bill usually wants some plan for reassurance sake. Something along the lines of, "Aha! Gotcha! You didn't do X! I'm not paying!"

I'll try to make the time to write up something. It's really a matter of explaining to them why our way of working ends up being faster and less expensive than the flat fee way. With our way of working, there's an assumption of trust, and we keep that trust through visibility of our progress. That way we share risk, and if we can share risk with the client, we can charge less, because we don't have to build in such a big margin in the price to cover our risks.

Couple pain points from experience:

Estimates in $$$ desired before start

-> Leads into defining a complete feature set

-> Desire for all estimates in time for all work (BS number, always)

Guarantees on what will be delivered

-> Getting the client on board with paying for time vs. paying for features

-> Offer minimal feature set + what we can do?

-> Dealing with scope creep

Require clients time

-> Feedback

-> Showcases

-> Many A) or B) given B) is 10 times more expensive

Clients who think like that will find a way anyway, process or no process. They are toxic and are to be avoided at all cost.

Try this one then, "Hey, we love what you are doing, but saw this new feature and think it is really cool. We are not saying you have to add it, but it would really make our day if you did..."

Specifically, I was reacting to your "gotcha" client, the one that will even want to look for a way to not pay you. Of course, it's the nature of software projects to evolve like this over this, that is exactly the insight behind agile methodologies.

Do you use this process for all the client projects you take in? We use an Agile process for internal projects which usually don't have an ending date. When we take in freelance work from clients we end up with a certain ending date, for a certain amount of work and iterations stated before starting the project. Before using this kind of process, projects would end up being longer, we'd end up loosing money, and time for other projects.

Yes we do. We charge per sprint, not a flat fee for the total project. Once we've convinced them that our way is faster and cheaper in the long run, they usually buy into it. As specially if they've been bitten by flat fee projects in the past, where it becomes an arms race for the developers to do as little as possible, and the client to demand as much as possible. Then tend to then understand that trusting us and working with us is a much better way.

I assume you're not charging a flat fee, then? The approach described by OP provides much more certainty in terms of scope and budget, which a lot of clients prefer and allows for easier planning of resources for the managers.

How do you deal with resource planning and also billing?

We don't do flat fee no. We convince clients it's not a good idea for them to do flat fee, because it takes longer, and we build in a margin to cover our risk, so they usually pay more with flat fee. By making every step of the process visible to them, and charging them for what we do as we go along, we can save them money and time.

I like to feel the sense of completion of a project. When you let clients run amok adding requirements as they see fit, it lowers my morale as the project completion time drags on longer and longer.

We've (almost) never had the feeling of "running amok". Communication is key, and constant feedback from the client helps us to make small adjustments often. That usually keeps them from making large changes at late stages, because we are evolving the project with them. Changes are usually an evolution, not a revolution, if that makes sense.

The times where the changes were big and late, it was usually down to bad communication at an earlier stage.

To me, this looks very similar to the waterfall model.

Arrows all going in the same direction? Yep, that's waterfall.

but the steps are repeating..getting feedback from client after every step

> We also explain the client that anything that does not get revisions or comments from them is automatically approved.

A really good post. I hate it when the clients ask for last minute features (for free) after not saying a thing about this during the development.

The great thing about this method is that when that happens the client is clear about that, we get to add another whole step, and charge for it.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact