Managing Expectations: The Myth of the Non-Existent Timeline

If you live and work on planet Earth then you’ve experienced something like this:

Joe: Hey Suzie, can you get me X.

Suzie: You betcha’, but I’m pretty swamped right now. When do you need it?

Joe: No rush… whenever you get to it.

managing expectations

Joe and Suzie think they’re on the same page. Solid.

It seems like a harmless exchange so far. Unfortunately, there’s a decent chance this relationship is about to take a nasty hit. Remember, Suzie said she was busy. What happens to a task that doesn’t have a defined timeline when you’re busy? Usually, nothing. Fast forward 3 weeks…Suzie’s been tied up with “high priority” tasks, some of them were even items for Joe:

Joe (now frustrated): Hey Suzie, where is X?

Suzie (sensing Joe’s frustration and getting defensive): I just haven’t been able to get to it. I thought you needed it “whenever…”

Joe: Well yeah, but that was like 3 weeks ago. What have you been doing all this time? This is a small task!

Suzie: Fine! I’ll drop everything and have it for you tomorrow.

Joe: Fine!

Suzie: Yeah, fine!

miscommunication leads to anger

Turns out, Joe and Suzie weren’t even reading the same book.

Boy…That escalated quickly. The problem all started when Suzie and Joe decided to move forward without agreeing on a delivery date.

Every request comes with an expectation of when it will be delivered, even if the requester can’t or won’t identify it. When someone says “Whenever you get to it” they really mean “This is a really easy task and surely you’ll get it before the next board meeting in 3 weeks, so I’m not going to be pushy and set a date.” Or even “I know when I need it, but I’m not going to tell you because maybe then I’ll get it early.” Or maybe they just haven’t consciously acknowledged that there is a date they need it by. Whatever the case, it’s trouble.

Here’s a personal experience: A few years ago I decided to lease my first brand new car. Upon closing the deal I told my dealer that I was in no rush and that it was ok if it took a week or two to get the car delivered. And I wasn’t lying, it really didn’t matter to me. However, the dealer insisted he was getting me into my new car by the end of the week. It was important to him! With his assurances in mind, every day that week I got a little more excited about my new car and by Friday, I was stoked to go pick up my new ride. So, when I found out my car wasn’t ready, I was pretty annoyed. I grew increasingly annoyed and ended up flat out mad as more days went by. Finally, the car arrived about a week later. It didn’t matter that I’d started out with no firm delivery date in mind, the dealer set a date of his choosing and then missed it, turning a win into a loss by mismanaging my expectations.

So, what should you do when a client asks you to accomplish something but doesn’t give you a deadline or timeframe?

Look at your workload, identify a place where the task fits, add some buffer, and provide a delivery date to the client. If they accept your date, great! Now, you can focus on delivery. If they reject your suggestion, you’ve just uncovered the hidden time constraint. Now, you’ll be in a position to negotiate and agree upon an acceptable date.

Congratulations, you’ve just averted a crisis by successfully managing your client’s expectations! This is easily one of the most important factors for providing great customer service, keeping your client happy, and maintaining a positive relationship during your work together.

Side note: If there really is no due date, then, in my opinion, there shouldn’t be a task. If something is so unimportant that it doesn’t matter when it gets done, why on earth would you ever spend time doing it?

Advertisements

Project Management & Relationships

Very often our blog contributors post great articles about things like managing expectations, solving problems for our clients, and gathering requirements from a client. All of the articles touch on topics that are very relevant to the work we do as consultants every day and one of the key aspects of doing each of these things well and, in turn, being good consultants, is to develop strong relationships with our clients.

Learn About the Key Players

When setting out on a project, one of my goals is to gather the requirements of the software that we’re being engaged to build. Beyond that, we need to understand who the decision makers are. These are often the people that we’ll being dealing with regularly to get things accomplished and make sure the project doesn’t stall due to indecision or missed deliverables. From the smallest task that requires a simple yes/no answer to a very important meeting to discuss a pivotal system process, as Development Managers, we’ll regularly engage the key decision makers to get all the necessary tasks completed.

As part of building a relationship with the parties involved in a project, we’re always trying to understand how our software will help their business. Clear communication is important to any project and we’ll often need to go the extra step of learning the company or industry-specific terminology that our clients use on a day-to-day basis. This helps us understand requests and communicate with each client most effectively.

Another important thing to learn about key parties for a project: what forces are driving their requests, decisions, and actions? From the start, we need to try to find what will make the project run smoothly and what could potentially hold the project back. Key questions here will cover topics like target dates, project budgets, and critical processes. These questions and their answers will help us do exactly what many of our other blog posts talk about–gather requirements, manage expectations, solve problems–all of which are crucial to the success of a project.

Row With, Not Against, the Third-Party Stream

What if your project requires you to work with someone in addition to your client? As a software development team, we regularly find ourselves in situations where we’re required to work with other vendors on tasks like integrating with other systems, adding/modifying code that isn’t ours, or working in an environment that we don’t have control over. These things can present potential hurdles, but we strive to do the best we can to navigate these waters because that’s what will make for the best possible experience and solution for our clients.

Much like when you’re building a relationship with a client, you’ll want to find and engage the key players of any third-party vendor and learn how best to work with them. Some of the best ways to ensure a friendly and professional relationship that meets the needs of your client and their project include:

  1. Asking early and often – If our development team needs something from a third party, whether it be access to a system or knowledge of existing code, we’ll do our best to get ahead by asking questions again and again, as soon as we know we’ll need the assistance.
  2. Understanding that third party teams have schedules, too – People often overlook the fact that other teams are fighting to meet their own deadlines outside of the project you’re working on together. We find the best way to stay on top of external deadlines is to repeatedly ask for tentative completion dates or turn-around timeframes from our co-vendors, so we can align our own goals and expectations and help better manage the goals and expectations of everyone involved in the project.
  3. Smiling – It sounds cheesy, but it can help. If you’re getting resistance from an outside party, do your best to smile when pushing for the answers you need. The best case scenario is that you establish a genuinely friendly relationship with your co-vendor but even if you don’t, getting the answers and info you need in a pleasant manner is always going to make it easier for you to work together successfully. And always remember to keep your client in the loop if you’re waiting for answers or status updates from another vendor.

Does Your Client Look at Your Development Team as a Partner?

As a developer, I often find myself in conversations about how people use applications, even outside of business hours! I frequently get the same feedback from friends/family that I do from new clients–they feel like the people who work in development (or “IT”) abandon them as quickly as possible. In developing good relationships with your client, make an effort to communicate that you’re “with them” on their project. The difference in saying something as minor as “We’ve accomplished” vs “I’ve accomplished” can have a big impact on that feeling. At Algonquin Studios, we take pride in being with our clients and doing the kind of relationship-building work discussed above gives us an extra sense of pride in what we’re able to accomplish. And, we hope that shows in all of our interactions with our clients.

The Corporate Dashboard

In this post, I’d like to talk about the good fundamentals of dashboard design. There’s an important item that separate a bad dashboard from a great one. It’s called a “Key Performance Indicator” or KPI. When we discuss KPIs, we are usually talking about something like “Income forecast” or “Employee productivity rates.”

The most important part of the KPI acronym is the “K” for “Key.” Key means it’s supposed to be important but all too often, I’ll hear:

“I want a dashboard with 50+ KPIs that can quickly show me the health of my company at a glance.”

Remember, the “K” stands for “Key.” Do you really need more than 50 indicators to “quickly” show the health of your company or department? Are there really 50 plus things that are “key” to your review? Can you even review 50 of anything “at a glance?” Really?

As an example, let’s take a look at a “Dashboard” with only a few KPIs versus one with lots of KPIs and see which is better suited to give us an “at a glance” view of the status of our company:

While each of these dashboards shows information that’s likely very important to the user and the health of the system, there’s an obvious difference in the amount of information being displayed and each is intended for a different kind of user.

The first is clearly a dashboard from a plane, specifically a B-58, and it has a ton of indicators and gauges. This type of dashboard can certainly be overwhelming to someone who’s not a pilot and hasn’t undertaken the significant training needed for its effective use. Now, this doesn’t mean there are too many KPIs on the dashboard, it just means that the process that the user is attempting to navigate is very complex and requires a high level of expertise. It would not be expected that someone viewing the dashboard would be able to tell the status of the plane in “at a glance.” If you really dug into it, there are probably only a few “Key” indicators on the board and lots of additional indicators that will help the pilot track specific information, look for particular problems, or do their job in emergency situations.

The second dashboard is from a BMW M series. It has two large dials for the Speedometer and the Tachometer and a few indicator lights for important factors like “Door Open” or “Check Engine.” This type of dashboard requires a much lower level of training to understand and interpret and only offers KPIs that tell the user how the car is performing in its primary objective–moving–and if there are any significant problems like a lack of gas or increased oil temperature. And it’s pretty important to realize that your car door is open when you’re driving along at 60 miles per hour! There are hundreds of other metrics that could be useful to different users (i.e. the car technician or the racing enthusiast) but they’re not “Key” performance indicators needed to simply drive the car and they can be retrieved in other ways.

Now, both of these dashboards accomplish their goal of providing all of the information that the user needs at their fingertips. But as I’m sure you could guess, the B-58 dashboard costs a lot more, because it’s more complicated in its design, its build, and its output.

If you’re considering building a dashboard, you must start by defining who your audience will be and what information they’ll need “at their fingertips” to be successful. Most dashboards only need a few metrics/gauges; the bulk of the effort should be spent on important things like that “Oil Temp” light. Define the rules to indicate that there are problems and then allow the dashboard to work for you. 

In an effort to collect some input from the readers, please comment below if your company has a dashboard. How many KPIs do you think are enough?

4 Questions a Software Developer Should Ask Each Day

This is my take on a lesson I was taught very early in my career.  It made sense to me right away, but after applying it for over a decade I’m convinced its one of the most important things I’ve ever learned.  I hope to do it justice in sharing it with all of you.  I’ve written this from my perspective as a custom software developer and consultant, but I believe it applies universally to software developers.  If you’re an in-house developer, just think of your clients as the folks you build software for (i.e. the users, your managers and the owners, etc).  Start by asking yourself:

Question #1: Is your client happy?

This should be the first thing on your mind at all times.  A happy client will come back for more. They’ll tell their friends about you.  They’ll promote your brand.  They’ll keep your pipeline full.  Clients are your lifeblood and keeping them happy is the only way to survive long-term.  I know… this is obvious, right?  Well, it’s not that easy to execute on all the time and a lot of developers don’t really understand what it means.  We’re not looking for short-term happiness brought on by just doing whatever they ask or by applying quick fixes in difficult situations. We’re after long-term, sustainable happiness.   How can we achieve that?

Manage Expectations:

This is huge.  You have to start managing your client’s expectations the moment you meet and continue doing so throughout the course of the relationship.  The moment you stop filling their heads with facts, they’ll start filling it with all types of other things.  Expected timelines will creep, visions of features will morph, old conversations will take on slightly skewed meaning in the light of new information that isn’t shared and wasn’t part of the original conversation. Expectation creep is not malicious… its human nature.  Small expectation gaps are like a crack in the foundation of your house.  With effort you can avoid them in the first place, but if allowed to form and grow they can be devastating to a relationship.  Communicate clearly, completely and often. And memorialize EVERYTHING in writing.

Honor your commitments:

Lots of promises are made at the beginning of the job.  Most of them will be recorded in a contract that commits you to honor them. However, not every intention, notion and promise will make it in there.  There will always be a new way to look at a deliverable later on and re-interpret its meaning. This tends to happen when the going gets rough. Maybe things are taking longer than anticipated. Maybe you’ve had staff or personal issues that distracted you from the project.  Stuff happens.  Renegotiate the terms if it’s reasonable to do so, but don’t, under any circumstances hide behind a nuance in the contract language or try to back away from the original spirit of the deal.  You know what you committed to. Honor it and get the job done. It will hurt at times, but your client’s happiness and your reputation depend on it.

Be a partner:

You’ve agreed to help your client solve a problem.  The best way to do that is to look at the issue as your own.  Do your best to see and feel the goals from your client’s perspective.  Own the problem.  Your client can tell the difference between this approach and that of the last firm who was just “doing their job”.

Be Available:

You should return calls/emails in a reasonable and consistent amount of time and you should answer the questions contained in them.  If you take long, random amounts of time to respond you’ll frustrate your clients. If your late response doesn’t answer the question, you’ll infuriate them.

Stick to your principles and do the right thing:

Your client hired you because they don’t have the time, or more likely the expertise to accomplish the task.  Even though you’ve been brought in as the expert, there will come a time where the client insists you to do something that you know will hurt them in the long-run.  It’s your duty to hold your ground in these situations. Take time to explain why this approach will be harmful. Give examples. Be steadfast. Ultimately it’s their decision, but you owe it to them to try and do the right thing.  I often liken this role to that of a personal trainer.  If your client came to the gym and told you they were tired and didn’t feel like working out, you could satisfy their short-term desires, buy them a muffin and a shake and plop them in front of the TV for a little Judge Judy, but that’s the easy way out and it won’t help them accomplish their long-term objectives. It’s your job to get them motivated and on the treadmill.  Don’t be a coward… do your job!

Be enjoyable to work with:

Make a connection with your clients on a personal level.  Ask them about their kids, their pets, their hobbies.  Be human and have a sense of humor.  Your client will like you if you help them solve their business problems.  They’ll love you if you help them have a good time doing it.

Be humble:

I’ve already stated that you’re here as an expert, but that’s probably only true for your specific role in the overall initiative.  Whether you’re building software or developing a social media strategy, you’re doing it for them.  Don’t come in acting like you’re the savior.  Do your part and do it well, but trust that they understand their business better than you do and they have the grand vision.  This is a learning opportunity for you and it’s probably the best part of being a consultant.  Listen intently, learn from them and make sure they know you’re doing it.

Question #2: Is your work correct?

If you’ve executed on the principals from #1, your client’s in a happy place.  Now it’s time to deliver and your solution better work.  It must accurately achieve the goals of the project in a meaningful and sustainable way.  It has to work today so that they can execute their business plans and begin to see some return on investment.  It has to be flexible enough that it can be modified as their business evolves.  It has to be scalable so that it will remain viable as their business grows.  Ultimately, this becomes an extension of #1.  Your product speaks for you when you aren’t around and it should continue the good work you did from the beginning.

Question #3: Is your work on time?

So you’ve got a happy client and a solution that works.  Next, you need to ensure that everything is delivered on-time.  Every project you take on becomes part of some larger business plan.  Once you commit to timelines, your client begins to plan their next steps.  Let’s say they’re planning a major product launch to coincide with the release of the new web site and online catalog you’re building for them.

They’ve got billboards going up, commercials ready to air and an army of trainees preparing to handle the expected influx of business…. and it all hinges on that end of year delivery your promised.  Now imagine its mid-December and you tell them you won’t be hitting your date.  It’s a client happiness catastrophe!  Months of planning is coming unraveled, your client cancels holiday bonuses for their staff because they need to conserve cash to pay the army of trainees with no corresponding revenue offset, they can’t cancel the billboards and commercials and they’re going to look like fools when they don’t deliver the product their hawking; oh… and your client is really starting to worry because they have a family vacation planned for the month after the project was set to be done and now that’s in jeopardy.  This may be an extreme example, but rest assured that your missed deadline will cause problems for you client that you may never even know about.  All you’ll know is that despite “everything you’ve done for them” your competitor wins the next job.

Question #4: Is your work on budget?

I bet you didn’t think it’d take this long to talk money.  Don’t get me wrong… budgets are important, but less so than client happiness, quality and timelines when it comes to your long-term success.  Simply put, you must never sacrifice #’s 1-3 to keep your budget in line.  That’s short-term thinking and it’ll eventually lead to a crippling pile of problems that will crush your business and reputation.  In a recent post titled Keeping Projects on Budget, I explained how an end-to-end project management effort is required to walk this line.  You’ll need to develop a process that works for you and execute it flawlessly.

One key topic to keep in mind along the way: Don’t do Out of Scope work for free!  I mean it… never ever ever ever. Not even small stuff.  Given the flexible nature of software, it’s easy to throw in this tweak or that additional feature.  It seems harmless at the time, but it always leads to problems.  First off, you’re mismanaging expectations.  You’ll be more likely to agree to something extra at the beginning of the project when you have lots of budget then you’ll be at the end when the budget’s winding down.  When you say yes, yes, yes then no, your client starts to feel cheated.  Why are you tightening the reigns now?  This leads to unspoken animosity where the developers think their earlier “generosity” is not appreciated and the client thinks this new strictness means the development team isn’t willing to see their “promises” through to the end. Everyone’s right and everyone’s wrong. It’s a bad situation and it damages relationships.  Secondly, now you’ll have to finish the scoped items with less than the necessary budget. You’re faced with sacrificing quality or sacrificing your profits.  That sucks.  See #2 for advice on what to do.

Summary

Software development can be a tricky business.  Most developers can handle the technology, but many struggle with managing the overall process.  Ask yourself these questions daily and align your efforts with satisfying them in priority order.   It takes time and effort, but if you persistently follow this list you’ll build great relationships, feel good about the work you do and eventually… you’ll make some money too.

I’m always looking for new tips and techniques for keeping my clients happy.  What’s worked for you?

Recommended read: While researching for this post I came across an article I liked so much I had to share.  A short, but important read: Mastering Account Management: 5 Tips for Keeping Clients Happy