Rules to Better Software Consultants - Dealing with Clients
Being a software consultant involves more than just coding. How you manage and communicate with your clients is vital to your success.
The other half of being the best consultant possible can be found at Rules to Better Software Consultants - Working in a Team.
Do you agree with them all? Are we missing some? Comment on individual rules, or email us.
Your existing clients should always be the first thing on your mind. Any work relating to existing clients should be done before looking into anything else, including prospective client work.
In order to gain a good reputation in the industry, it is vital to make existing clients happy. If you are seen as being more interested in getting new clients than satisfying old ones, not only will you not receive return business, but you may have lost credibility in the industry and the chance of referrals from their contacts.
A good way to think of it is "is the ball in their court?" This means that your client is never waiting for you to do something, and that if there is a bottleneck; it is not on your end.
A good saying pertaining to keeping your existing clients happy is: "A bird in the hand is worth two in the bush".
It is extremely important to demonstrate to potential clients a high level of quality service and attention to their needs; Whenever you receive an email from a potential client in relation to possible consulting work, you should make sure they receive an answer within 5 minutes of you receiving it. This is for 2 reasons:
- To show you are keen and to give an indication of the level of service they will receive
- To stop them "shopping around"
They will quickly recognize that they will not receive that kind of service anywhere else!
If you have followed the previous rule and the ball is always in their court, you need to make sure that they keep playing.
The best way to do this is to make sure you follow up all communications that require a reply, whenever you feel that a bottleneck is forming.
The best ways to follow up a client are:
- Use email If there is no response, find the original email and resend. See our Rules To Better Email - Do you know how to hurry someone up?, Rules to Better Email - Do you always follow up your clients? and Rules to Better Email - Do you realize the importance of a good email Subject?
- Use IM or Skype See our Rules To Better Instant Messenger - Do you communicate more efficiently?
- Use the phone Call them
TIP Use www.FollowUpThen.com for your follow up emails
A lot of time in a consultancy can be taken up by producing estimates for clients so they can see a ballpark of what they will be spending. Because this time is not billed, it is easy to end up with rushed and inaccurate estimates, leading to problems later in the project.
A better way to go about it is to spend a little more time, and really get down in detail to what needs to be done. This is called a Specification review and is billable.
The exception to this rule is if the client is happy to invest some of their own time to help you come up with a ballpark, then you can spend some time on it for free as this should help to get the client feeling invested in you and therefore more likely to go ahead with the work.
A fixed price - fixed scope project sounds good but doesn't always end up with the result either the client or the developers expect and sometimes the key players can end up disappointed.
There are 4 main reasons...
You can’t predict the future
- Waterfall project planning has been proven to not deliver over 30 years of trying... The Gartner Group says 74% of failed software projects in the last 2 years
- See the Cone of Uncertainty to see the range of cost change at different stages through a project:
Changes requests are an extra cost and slow progress
- It costs more because the fixed price part is fixed to the original scope, not changes. So changes are a cost on top as changes are new work and out of scope
- Progress is slower because the change request cycle on fixed scope consumes time and discussion of the nature of work and whether it is in or out of scope
From experience during the development the client will realize some items are not what they wanted, but they still pay due to fixed price
- When the client sees the real system implemented they will often have better ideas and realize there are parts originally scope they don’t meet their real needs but because it is in the contract they pay for them even when they are not implemented, and pay extra for the changes to give what they really need
In reality fixed-price fixed scope leads to lower quality in most cases
- The lack of a running cost and instead a ceiling on the cost will normally result in a low pressure project environment at the start of the project and very high pressure to complete it only towards the end of the project. In that period of high pressure as developers are working to hit the one big delivery it becomes tempting to them and sometimes even expected by their management that they will cut corners
Instead, the use of an iterative methodology like SCRUM that provides constant progress reporting and gives the client agility to implement the required features with adjustments during the project, works to reduce the cost and also provides the most important features paid as Time and Materials in a working solution sooner.
If you have an existing client, who is already impressed with your work, you don't need to go to the trouble of meeting then to show them an estimate. However, you should at least call them. When you're competing for someone's business, what could be worse than losing the work simply because the client either didn't receive your email, or was too busy to read it? For this reason, always call the client before you send a quote. This way, they know you are about to send them something so will look out for it.
As per our conversation today, here is a ballpark schedule for the work we talked about. As you can see all the items are listed separately so you can identify how the estimate is put together. I'm very happy to discuss these estimates with you so feel free to give me a call.
Figure: Always call the client to let them know that you are about to send a quote across, then send an "[As per our conversation](/do-you-send-＂as-per-our-conversation＂-emails)" email.
There are two fundamental ways any consultant can bill clients:
Time and Materials
Time and materials is the standard mode of operation where the client is billed for the time spent by the consultant. There is no warranty on time and materials work.
Fixed price is where the client is billed a fixed amount agreed between the client and the consultant. Fixed price contracts have the following conditions:
- All specification work to be conducted on a Time and Materials basis
- All screen mock-ups and business rules must be signed by the client
- A fixed price can only be done on a release by release basis, not on an entire project (this protects everyone)
- A 20% premium is added to the release estimates - just like an insurance premium because the consultant is carrying the risk
- Variations/change requests have to have separate written approval. e.g. Hi John, You've asked for XXX. This is not covered in the original scope and so will be charged extra. Our estimate is YYY hours at $ZZZ + GST per hour. Please approve.
- Development is conducted off-site (to prevent unauthorised scope-development)
- 50% of the fixed price is payable before work commences, the balance is payable at the delivery of the first external test please
- There is a 30 day warranty on bugs which commences when the first external test please is issued
- The following release cannot commence until the prior release is signed-off.
When working on a Time and Materials basis there are two different management arrangements depending on what the client requires.
A. Ad-Hoc Work (The Client is agreeing to the time)
Working on an ad-hoc basis allows tasks to be done as they are requested without any formal approval process. This is a simple approach but provides little in the way of management or accountability. This may be suitable for ongoing work such as application maintenance with longstanding clients OR working under a client manager.
The ad-hoc work approach should not generally be used for project work where the client wants you to manage project elements such as time, scope, quality, and cost.
This approach can be useful for problems where time or effort is not immediately known and not possible to estimate with the information at hand. The types of work this may include would be support jobs or investigatory work.
There should be an agreement of the time allowed to be spent ahead of time, even if what is being worked on has no scope.
B. Managed Work (using Scrum, the Client is agreeing to an outcome that the consulting company controls)
The alternative is to work with a Scrum Master, or a Project Manager, with specification, and Sprint plans. In this approach, management is applied to provide control and additional communication and controls of the elements of time, scope, quality, and cost.
This method is recommended for any work which is substantial and where the client wants a greater degree of control.In this approach, backlog items are created during the Spec Review process while creating the project estimates, which can be used to create the sprints.
As a consultant, it is important to realise that all of your time is valuable.
In the situation where you are at a client site and your time is being billed, don't be conscientious and quiet. You need to make sure that there are no bottlenecks slowing you down. Make sure you have everything you need and, if you need to ask a question, keep asking until you get an answer.
Clients will always prefer a slight irritation at the time rather than an inflated invoice with no result later on.
You need to be persistent. You should make sure that you don't let good ideas go because you get *one* 'No'. Instead put it on a 'My Good Ideas for the Boss' list and bring it up with your boss a few times.
This is a very important concept, just because you get answered 'No', it does not mean that it is a bad idea, or that it will not benefit the company. You may get the answer 'No' for reasons that you do not know about, such as financial difficulties, or it is too busy at the moment to worry about. So put these ideas onto a list, and remember to bring them up with the boss at a more appropriate time, say a couple of weeks later. If you are not satisfied with the result after a few times, consider going a level higher and talking to your boss about your idea, so you understand why they made the decision they did. It is important however to realize that not all your ideas are going to be good ideas, so accept that after you get a few 'No's. Figure: Write down your ideas so they don't get lost Print "My Good Ideas for the Boss" sheet and have it ready for your bright moments. In case you don't have one in hand, draft an email or a note, but don't let good ideas go.
If you don’t make another appointment to see a client before you leave you may forget, and the client may forget. Make sure they are thinking about your next visit by booking the next appointment there and then, even if it is not for many months.
Figure: Always get that appointment booked Use your mobile phone to book an appointment rather than remembering it later. If the systems are down, you may forget it entirely and that would be worse than never having made it.
Figure: Use your phone to book the appointment so you don’t forget You can see the best way to book yourself in using the CRM Service Calendar here: http://rules.ssw.com.au/Communication/RulesToBetterCRMForUsers/Pages/How-to-book-developers-for-a-project.aspx
Is your price:
- $100 per hour + GST (the $100 being the amount exclusive of GST)
- $110 per hour (the $110 being the total amount)
We say the first one. When providing quotes to prospects/clients, it is always better to display the net value + 10% GST rather than the total.
The reasons for this are:
- It avoids any confusion as to whether GST is included.
- This net amount is the REAL cost to the customer, as they get the tax back (in Australia).
- The net value is lower and appears more attractive to the client.
- The 10% GST charged to the client is not income for your company. In Australia, we collect this 10% on behalf of the Australian Taxation Office.
The client will receive back this 10% GST from the Australian Tax Office when they do their quarterly BAS/GST Return.
The total fixed price total is $AUD 66,000 - please find quote attached. Bad Example The total fixed price total is $AUD 60,000 + GST (10%). Please find quote attached. Good Example
Note #1 : SSW and other Australian companies do not charge GST to external clients outside of Australia.
Note #2 : This only applies for business to business transactions. When selling goods or services to individuals for domestic or personal use in Australia, prices must be quoted inclusive of GST as per the Competition and Consumer Act 2010.
While you are writing out a quote, make sure you know when to use a round or exact figure.
Often clients will call up asking for a short task to be performed. You need to know how to let them know that the time will be charged.
If it was a quick 5 mins I would do it straight away... however I need to do a little investigation... first impression is that it might take me a couple of hours... if that is OK then I would need you to authorize me to go ahead. Let me know... Good example
The least pleasant part of the consulting industry is dealing with clients who don't want to pay for your services.
It's important that the client is *always made aware* from the beginning what they will and will not be charged for. That way, they will never receive an invoice they are not expecting and so will be happy to pay them.
If an issue does come up, make sure you come to an agreement quickly and don't let the issue fester as it can lead to a lack of customer satisfaction and people can start digging their heels in, leading to a lot of time wasted on working out whether the client will pay or not.
If someone else needs to be consulted for approval (e.g. the boss) get them on the phone straight away, rather than speaking to them later and then having to organize yet another meeting with the client.
Office meetings often are ineffective, because:
- There is a lot of discussion but no resulting "action items"
- Time is wasted digressing to unrelated topics
- People forget the meeting is on and do not attend
- People turn up late with no notice
To ensure your meetings are productive and successful, you should:
- Make Sure the AV setup is correct. Please refer to the SugarLearning item 'AV Setup for Skype for Business Meetings'.
- Create a meeting agenda prior to the meeting. Give each attendee a copy. If the discussion strays from the topic, the agenda will help you keep it on track.
- Send an appointment to all meeting attendees to ensure the meeting appears on their calendar.
- If you are going to be late, contact the organizer or the person in charge of the meeting to let them know that you are running late and what time you will be arriving.
- To improve future meetings, at the end of the meeting, do a quick debrief to see how long the meeting took, if anything was covered that didn't need to be, etc.
Figure: Good example - meeting with Agenda
Every Outlook appointment must have:
- A good subject, to let attendees know the purpose of the meeting, see our rule Do you realize the importance of a good email Subject?
- A good description of the location, including detailed information like location name and street
The message itself must contain:
- A link to the location with instructions to print it eg. Print this map http://www.ssw.com.au/ssw/company/directions or a google map link
- The final step in the agenda being "Set a date for the next meeting"
- A note mentioning if the meeting is billable or not
- Your standard footer in message (same footer as in mail messages)
- A URL mentioning Tips for better meetings
Hi Bill Northwind
- Print map http://www.ssw.com.au/ssw/company/directions
- FYI the account manager is not billable, the developers are billable
For meetings tips see Rules to being Software Consultants - Dealing with Clients
Figure - Message example
When a client arrives, your job is to make them feel comfortable and impress them with your professionalism. It is important that clients have a consistent experience in their contact with your company.
- Leaving the client standing at the reception while finishing what you were doing
- Offering them tea, coffee or biscuits (not everyone likes tea/coffee)
Figure: Bad example - This could start the meeting poorly
- Be dressed appropriately
- Greet them warmly
- Have a firm handshake
- Make eye contact and smile
- Direct them to wait in the waiting area (so they can learn about the company through our tv screens)
- Notify the project manager/developers who are included in the meeting
- Ask someone to bring a couple of glasses of water into the meeting (as everyone drinks water)
- Join the meeting in the boardroom:
- Show some enthusiasm when meeting with the client
- Hand over, and collect, business cards - (organize in front of you, to help you remember their names)
- Use their names a few times early on to help you remember their name
Figure: Good Example - You are starting off the meeting well
You should do a role-play with your manager being the client. Then get feedback on how he/she found the experience.
Meetings are an area some clients think will be free, so always mention it.
As stated in SSW's Terms and Conditions:
In an hourly work agreement, the initial meeting with the customer will be conducted by SSW at no cost. Subsequent meetings are considered as specification time and will be charged at the agreed rate. The minimum time chargeable for on-site work is 2 (two) hours per person per visit. The minimum time chargeable for off-site work is 15 (fifteen) minutes per person per request.
In some occasions it may be necessary to compromise by charging for the developer's time but not the project manager's.
Before you attend a meeting you must come prepared with details about the client; meaning no unnecessary questions. By unnecessary, I mean you should already have the answers to these questions. Extensive research is impressive to clients.
So you are talking to a client about their ice cream chain?How many outlets do you have?Where is the main outlet? Figure: Bad examples - you should already know the answers to these questions by use of research tools such as the Internet I noticed you have x amount of outlets, are you planning to open up more, when and where?Which of your products contribute most to your gross profit?How do most of your customers hear about you?Do you have a customer loyalty program? Is it working?Where are some of the biggest challenges / opportunities for you at the moment / in the future? Figure: Good Examples
By asking questions, you show interest as well as initiating conversation - remember to get the customer talking.
Look for points of pain and build on them - if there's no pain it's hard to fix the problem properly.
Tip: Google their name before the meeting. Customers' ears prick up when they hear that you googled them.
There is often a bit of confusion about what constitutes a brief proposal and what constitutes a specification review.
Brief proposal - free:
- Information about your company
- A basic overview of what you'll do for them
- The next steps
Specification Review - billed:
- A technical document listing in detail what technologies will be used and how
- Most likely includes initial release plans and ballparks
The findings of the Spec Review (the Initial Release Plan) should be presented at a meeting with the key decision makers of the project for review and acceptance, generally in the form of a PowerPoint presentation. It is important that all the required people are in a room together to review the Initial Release Plan.
It is essential to clarify the purpose and time of meetings.When you commence each meeting you should ask the following two questions:
- What are the points you want to cover in this meeting?
- How long will this meeting be?
By asking these two questions you define both the client's and your expectations from the meeting; eliminating one of the factors which contribute to time-wastage.
It is important to build a relationship of mutual respect with clients. A natural and simple way of doing this is through exchange of names. You introduce yourself and give them a card and in response they introduce themselves (giving details, including name and position, which you MUST ALWAYS remember).
For meetings with clients, aim for a ratio of 70% to 30% - that is, 70% of the time the customer should be talking. Remember the purpose of the meeting is to meet the client's needs. You can still convey your message to your clients by adding to what they have to say, rather than presenting a prepared speech to them.
It's important to ask probing questions and then listen to the answers.Client: We had a problem in ChinaYou: What was the problem? Figure: Good Example
When you are about to finish a client project, it is a good idea to prepare a "thank you" email, have it checked and send it to your customer (usually product owner) on the last day. In this email include:
- Thank your product owner for the time and tell him the reason why you really enjoy your time on this project
- Check to make sure you have completed all requirements
- Prepare a list of future improvements you can think of that can be done
There are a number of reasons why this is important:
- It shows that you really care about your client/project
- Give them something to think about. they might get you back to fix the problems you have identified.
- Show him that you will be supporting him after the project ends (not disappearing forever)
Below is a template email you can use:
Thank you very much for your time for the last xxx weeks. I think you must be the best product owner I have worked with at SSW (always available for me when needed). I really enjoyed this little project.
I hope I have completed most (if not all) of your most important requirements. I had good look at the source code and while it's fresh in my mind, I thought I might send you the following suggestions that would make it easier for myself and other developers in future:
Improvement Area 1:
- Do this: because of this
- Do this: because of this
Improvement Area 2:
- Do this: because of this
- Do this: because of this ... ...
Please feel free to contact us if you have any questions.
Here are the first things you should do EVERY time you come off client work:
Get a reference from the last client
- It is a good way to check the client is happy
- If your company is a Microsoft Gold Certified Partner, these references can lead to competencies such as Custom Development Solutions and ISV/Software Solution
- An example of what to say to the client is: "We are a Microsoft Gold Certified Partner and I would like to submit a short description of the project to Microsoft, you will receive an email from Microsoft asking you to approve the reference. How does that sound?"
- We would also love a testimonial to add to our website. Would you be happy to give a testimonial for the work we've done for you? Can you please email it to me?
- If there is going to be further work down the line, ask to pencil in a booking for say a month's time or so, so that you don't get too booked out by other clients.
The next thing to do is to call your last few clients. You should always be in contact with them at least every 6 months
Before the call always prepare.
- Refresh your memory about the company, project and contact before calling (have a look at their website; have a look at their competitors etc.)
- Check the upcoming events (Check the calendar on the Home Page to see what's coming up)
- Know the topic of the upcoming user group
- Draft out some suggestions in an email (don't send yet)
Decide on what value-add opportunities you are going to offer them. Some examples:
- A relevant and useful URL of an article
- Mention something relevant to their project from a User Group presentation you saw
- Maybe you can also invite them to a free Tech Breakfast
- Maybe an upcoming User Group would be useful. It's a good place to have free training, and to build contacts and socialize (lots of IT managers and developers). Email the User Group link
- Ask them about their website. See if any work needs to be done - Mention the need for maintenance
Call and chat to them about the work you did with them. Ask how everything's going, and if the application was successful
- If yes - great, see what else you can do.
- If not - then find out why (was it a technical issue, or the app not meeting the business needs) and offer to improve it. You can offer them a free consultation with one of our account managers.
- Take some notes on what they liked about the solution.
- Always ask if they know of some other projects we could help them with, or if they know of anybody that may need some software development gurus.
Send a follow up email
- Send an "as per our conversation". Include some of your notes, a thank you for the time, and CC the Account Manager. If they were interested in a consultation, then ask the Account Manager to follow up
When you seek advice or help from another, firstly, you need to establish with them:
- Your understanding and,
- Methods you have previously attempted in order to resolve the problem
Tip: Be aware that you don't want them to reply with http://www.lmgtfy.com
or the bing version http://letmebingthatforyou.com :-)How do you xxxx? Figure: Bad Example - By not stating what you have previously attempted to resolve the problem, the person you are seeking advice from may be wasting time if they suggest methods you have already done. I have searched Google but no luck... How do you xxxx? Figure: Good Example - The person you are seeking advice from will not suggest for you to do the same methods again and will look for other ways to resolve the issue. Another rule that closely links to this can be found in RulestoBetterInstantMessenger.aspx
Some tasks are either time-critical or you give a promise to do them promptly. It's very important that these tasks are given a high priority.
If you're not going to be able to deliver a task on-time, you should let the appropriate people know right away.
You could use your Inbox as a priority list by sending yourself email with an estimate and the priority. Also you are supposed CC other who you think should know about this, so that they could give you some advice and know what is going on here. (Link: do-you-send-yourself-emails)
It is essential that a company keeps a record of how much time its employees are spending on billable and non-billable work. This helps at invoicing time, and to make sure the clients see exactly where their time and money is being spent. One of the primary responsibilities as a developer is to complete timesheets.
See Rules to better timesheets for more.
A common mistake for developers is to say "See you later, call me sometime next month".
On your last day of consulting with a client, you should always book on the next date. Be aware of the main blockage people get, which the client is saying "How about I check my calendar and get back to you?". And often this never happens.A better approach is to reduce the risk by:
- saying that you are only penciling it in and it can be canceled, and
- bringing some urgency (by saying your calendar fills up quick)
So try something like "My calendar fills up really quick, how about I pencil you in... How about we say 2 weeks' time? Don't forget you can cancel it anytime."
Note: If, at the end of the day, work hasn't been fully tested or is incomplete and you haven't been booked in for the next day, tell the Product Owner (PO) that issues may arise and further work is likely to be required. After the conversation, email the PO and CC your manager to confirm that further work is required.
E.g. "As per our conversation, this work has not yet been tested and may still include bugs. At this stage, you would prefer if we did not continue to work tomorrow, but I do recommend that we come in and finish soon."
It's often easy to lose track of what you're doing, especially if you have a busy day full of meetings and rushing around, it can often be easy to sign off and not think about tomorrow until you have to. But what if you're not coming in to the office the next day? You might be booked in to work at a client site first thing in the morning.
For this reason, it's a good idea to end each day by having a quick glance at your calendar. If you're especially busy, it can also be a good idea to have a paper printout of your week so you can look at your appointments in the car or on the move.
At times we have to work overtime on a project and the client is not charged for the total hours worked. When this occurs it is important to let the client know. If a client does not know, how can they be grateful? A happy client is achieved in small bite sized steps. Informing the client of overtime that is not charged is just one of those small steps.
People are not mind-readers (unless they are telepathic!), so when you get good feedback from a client, make sure you get the recognition for it. There is nothing wrong with getting brownie points for the work you have done and making sure the boss at the client site and your manager know about it.
To: John Smith - CEO Qwerty Organization CC: Adam Cogan - SSW Manager From: Sophie Belle - SSW Developer Subject: FW: .NET Development Work for Qwerty Organization by SSW
| | John,
FYI - see the email below. As you can see, I am loved :)
----- | | To: | Sophie Belle - SSW Developer | | From: | Amanda Panda - Qwerty Organization | | Subject: | .NET Development Work for Qwerty Organization by SSW | | Sophie,
Thanks for the latest release. It is fantastic! Thank you for all your hard work and commitment to helping implement this solution.
Qwerty Organization |
Figure: Developers, when you get good feedback from anyone at the client's company, forward their comments onto the boss at the client's company and CC your manager
"It’s not good enough just to do good work.You’ve gotta do good work and be visible"
Assuming you are an awesome worker, there are a whole bunch of smaller ways of getting brownie points and they are all around good communication:
- Doing or sending a Daily Scrum
- Sending a "To myself" after taking requirements from a client
- Sending a Done with a screenshot after you have completed the task
- Doing a Done Video
- Preparing and doing a great Sprint Review and sending an email
- Sending an invoice with plenty of comments
- Sharing your knowledge at a user group (aka Meetup) presentation
- Recording or live-streaming your user group presentation and uploading it to Youtube
A sentence can be phrased in many ways. It is important to use positive language when speaking to clients. Instead of saying "I will NOT do X until you do Y", you can say "When you do Y, I will be happy to do X".
We will need your agreement on the mockup, and as soon as you are happy with it, we will develop it to the agreed mockup. We will not be able to change the mockup once made and you are happy with it.
We will develop the report once you are happy with and have signed off the mockup.
Having your clients as Instant Messenger contacts can improve your efficiency in project work. You can get a fast solution to road blocks and solve little problems quickly, as well as develop a better relationship!
Of course any important chats should be confirmed via email.
I find having my clients available on Skype is extremely useful. Are you on Skype? If so, can I please add you as a contact? I'll add the above email address, let me know if you use a different one.
CheersUlysses MaclarenFigure: It's easy to get your clients on Skype, you only have to ask!
Frequently when you are working on an ad-hoc basis or under tight deadlines managers or clients will "shoot from the hip" and ask for tasks without necessarily thinking much about them. Some of these tasks will be critical, some will be less so. It's important you don't waste time on unimportant tasks. There are plenty of important tasks to keep you busy!
If you think the task you have been given is going to take more than 2 hours, stop work, call the client and confirm they'd like you to keep going on that task. Sometimes the client will say keep going; sometimes they will say thanks for checking with them and ask you to work on something else.
If you can, don't wait until two hours is up before checking - check as soon as you realise it is likely to take more than two hours.
Figure: bad example: Don't keep working on a task until it's too late!
Figure: Good example: Calling the customer to tell them that "changing that function hyperlink is going to take more than 2 hours. Actually more like 2 days, do you want me to go ahead?"
If you call a client or team member, and for some reasons he/she do not attend your call, then you MUST leave messages to ensure a response.
Your messages must contain your name (firstname and lastname), purpose of calling, andyour contact number. Create a sense of urgency by giving them explicit time frames when you are available. Hi Ms. Emma, this is Alvin. Please call me back, thanks. Figure: Bad Example - lacking in communication details, reason for calling and sense of urgency Hi Ms. Emma, this is Alvin Shen from SSW. I am calling to follow up our meeting yesterday about your company website. Please return my call on 02 9953 3000. The best time to reach me is between 9 and 11am today, or between 3 and 5pm tomorrow. My number again is 02 9953 3000. Thank you. Figure: Good Example - This communicates important contact details, a reason for calling and implies a response is needed in the next day or so
Confirm the voice message with an email.
There are several advantages leaving messages when your call is unanswered:
- He/she may know who calls and be able to return your call.
- If your message is urgent, he/she may return your call straight away (even though he/she is VERY busy.
When someone brings to your attention that they are not happy with something, do you address the problem and not ignore it? For example, if your boss tells you they are unhappy that you do not have a release plan for the development you are working on, you should create a release plan right away. Do not ignore the problem as it will only escalate, fix it now!
This is especially important if someone has followed you up. Try to get back to them as soon as possible with a response as it shows you care about what they care about.
This also applies to communicating with people internally about issues that relate to:
- Account or payment issues
- Unhappiness with your company generally
- Pausing work or ceasing development for any unexplained reason
You should alert your management ASAP.
Problems come in endless contexts but here's how we deal with some specific examples:
When you call a client, always try a second time straight away. Sometimes they are not at the phone, sometimes there is a technical issue or some other reason, and you should try to call again to make sure you give the client enough time to pick up your call.
Start the day on a good foot by asking:
- The plan today is XXX?
- What do you want to cover today?
- What do you already know?
- Do you want lectures/Hands on labs/mixture?
The impulse to win an argument and prove that you are right can be a strong driving force, but it's important not to let it take priority over keeping a good client.
If the client is unhappy or upset, it's more important to show empathy and demonstrate that you understand your client's point of view, as it is more likely to win you future work.
Make sure you start a reply to an angry client with something like "I understand your frustration, and I think I can stop this happening again".
At this point in time, you want to aim for a compromise, where each party meets the other somewhere in the middle.
When working on an hourly basis, you can confuse clients when sometimes you try to talk about a few hours here and a few hours here or there.
Simply things and just give them these 3 numbers:
$ Billed to date __$xx__(accurate on Tuesday) Burndown Days Remaining __8__ Calendar Days Booked __4days x 2__ Next meeting (for Review and Retro)
Hi Andrew,Please find the Burndown report below. I have looked at a few tasks with Zune and re-estimated them.
- Product owner:Andrew
- Scrum master:Paul
- Team:Mark L,Zune,Tristan,Trevor
- $ Billed to date:$20,000
- Days remaining:(around 50 hours based on chart below)=7+days
Days booked in are 4 days x 2
- ML and ZV - Mon 5th
- ML and ZV - Tue 6th
- ML and ZV - Mon 12th
- ML and ZV - Tue 13th
Only the 14th we will
- Move any remaining tasks to Sprint 4
- Have a Review Meeting (show and tell) at 10am – 2 hours
- Have a Retrospective Meeting at 12 noon – 2 hours
Have a Planning Meeting at 2pm
Please let us know if you have any questions or concerns.
Clients come to us because of our experience and expertise as software consultants. Many of the problems faced by our clients we have seen, and solved, before. This means that, sometimes, the software consultants know best. But this is a delicate subject. You must be very competent to pull this card from your sleeve. It is easy to not only cause offence but also be plainly wrong. So before you speak make sure you've got the two fundamental aspects of this rule clearly sorted:
- Knowing when you know best (and knowing when you don't)
- Knowing how to persuade the client that your way is the best way (and knowing when you have failed)
Knowing when you know best
The expertise of a software consultant is likely to be in the technology underlying your clients business, not in their business model. If they're willing to pay for external consultants its highly likely their business model has been successful to date and it's wise that you leave that to them.
However, on some issues you should speak out firmly when you think the client is suggesting the wrong course of action. The following areas are most common:
- Using old technology - eg SharePoint 2007 instead of SharePoint 2010
- Wanting a non-scalable solution - this should speak for itself - the client is likely coming to you because their current solution has max'd out
- Pushing for quick fixes when a better longer term fix is reasonable - eg hardcoding connection strings, using Boolean instead of Text when more options might arise down the track, fixing the size of text boxes instead of having them scale with the content.
- Not thinking that UX matters
- Trying to revert to a fixed price model when the agreement is time & materials
Knowing how to persuade the client that your way is the best way
If your client is not technically savvy you should be aware that an argument using technical language is unlikely to be persuasive. Argue your case using language that underscores your understanding of how your suggestion will improve their business, eg by future proofing the solution or allowing changes to be more easily implemented down the line.
As soon as you see the clients eyes glaze over, stop, it's likely you're bamboozling with techno-jargon. Rethink your argument and state it again.
If the point is arguable, once a client says no three times, don't push your luck too much. If you do concede don't forget to send an "as per our conversation" email to keep a record of the decision.
Sometimes a potential client contacts you and you are not the right person to deal with them. You need to hand them over to a sales person. There is usually no reason to call them and you can respond via email with:
- A clear instruction for the sales person to follow up
- One action item for the sales person to follow (more than one action item or asking the prospect to complete a task can cause confusion and delay
If you interrupt someone when they are in the zone, it can take them 15 minutes to get back into the zone.
Instead of interrupting someone directly, you can:
- Send them an email to contact you when free (preferred option)
- Ping them on Microsoft Teams or Skype with the message “See me when you are free”
Check the rule Do you deal with distractions?
Being a good developer is not enough. There are multiple factors that can affect whether a project proceeds in a positive or a negative way. One factor that can have a significant impact on a project is the relationship between the developer and the client.
A great way of taking a small step each week is to do something on a more personal basis for the client.
Each week give some love to your client. "Client Love", as I have seen, varies a lot. Here are some things I have seen:
- The developer notices that the topic of the upcoming SSW Tech Breakfast is appropriate and rings the client to offer them a free ticket.
- The developer sends them a SMS on the weekend saying... "I was just thinking about your project and I think this might be a good idea?
- The developer works back and gives a call on the way home to tell them what they did extra in their own time.
- The developer sends an IM with a link to a web article that would interest them.
- The developer buys the client their favourite coffee.
The developer talks and listens to the client about non work related things. People generally love talking about themselves and appreciate it when someone listens; most people don't take the time to listen. Here are some examples I have seen:
- How was your weekend?
- What are you doing this weekend?
- General talking about their family / remembering the names of their family members.
- General talking about their hobbies. The tasks don't have to cost anything. Free tasks are more thoughtful and show the client you are thinking about them.
Tasks should be completed whilst on client work. Once client work is completed, the developer should move onto the Post Client Work rule.
Extra Reading: For some, the above comes naturally. For the rest of us, we highly recommend the book "How to Win Friends and Influence People" written by Dale Carnegie. It is an easy read, the principles are easy to implement and will not only change your client relationships but enhance all the relationships in your life for the better. See Rules to Successful Sales Account Management
A client will always prefer to be told ahead of time if a piece of functionality is going to take longer than anticipated. It gives them more control of what is going on. The other opinion is landing them with an oversized invoice with no warning.
For this reason, blowouts should be reported in the Daily Scrum, as well as any major delays being told to the client as soon as possible, so that they don't get a big surpirse in the Sprint Review. For big delays, it's best to tell the client as soon as the risk is identified to inform them of what's going on and ask "Do you want us to continue?".$100k estimate. Calling the client when you reach $110k to say you have $20k to go. Bad Example: Not giving the client enough warning. $100k estimate. Calling the client when you reach $80k to say you have $40k to go, and does he want to continue? Good Example: Giving the client a warning ahead of time and asking for permission to continue.
Imagine this… a client calls you in a panic when you are working at another client. You need to login to their DevOps portal to see the problem and so you sign out of your current clients DevOps portal …wait… wait… get a 2 factor SMS… wait… and then finally get in! But then you notice it also knocked you out of the Azure Portal and your Office 365 email that you were previously signed into. Annoying!
Chrome Profiles allow you to use different credentials
- Never log out
- Never use Incognito (where you need to login)
- Install your cool extensions in each of your Chrome Profiles
Consultants usually work on different client projects and use different client credentials eg. Azure DevOps, Azure Portal and sometimes an email account with the client’s branding. Password managers are great, but going from client to client you have to continually switch between accounts by logging out and logging in with different credentials.
Q: Is this only for developers?A: No, my PA uses this (in her case, her "client" is Adam 😉)
Many people have an Office 365 account, and a personal Office 365 account. If you want to avoid keeping logging in and out to switch between them, try setting up a separate "person profile" for each in chrome.
Make use of Chrome Profiles to separate your bookmarks, history, passwords and other browser settings for different clients and that means that the frequent log out and log in overhead is eliminated. Simply switch to a client specific Chrome Profile and all the credentials are automatically restored.
Creating a new profile
- Open your Chrome browser
- Click on you profile button
- Select Manage People to create a new person/profile
- Click Add Person
- Fill in the person/client name and select an icon
- Open your Chrome browser
- Click on you profile button
- Select the person/profile you want to switch to
How to add or remove a person profile?
Please have a look at https://support.google.com/chrome/answer/2364824
CC the client from the beginning (unless it’s obvious internal communication). This allows the client to see progress towards speaking with the right person and also gives them an opportunity to correct any details we might have got wrong.
Often, when a manager is called in to help out with a conflict situation, they don’t have all the context or details, so backchannels can help to fill the gap.
Prior backchannels - Have an "off the record" conversation with your manager or teammate before a client meeting. If your manager has no idea about an issue, when they’re put on the spot in a meeting, they then have to interrogate regarding processes followed, etc. It’s better to have them prepared before they go in. One way to do this is by asking good questions – see the video on how to ask good questions below.
Live backchannels - Assist in real-time with relevant information in an alternative private channel e.g. SMS or Teams. This can help the conversation flow and help to verify what is being said, and limits the need for phrases such as, “William, is that true?”
**Post backchannels ** – Debrief your manager or teammate how the call or situation was handled, outcomes, where it is at now, next steps, etc.
In general, use Teams for private information, or SMS as a last resort. Treat sensitive information or scenarios with care to ensure a good outcome for all parties.
Client: "I told them we’d need blah" Manager: "Oh that does sound reasonable. Devs, why was that missed?"
Figure: Bad Example: Manager looks uninformed and is always on the back foot, and needing to ask questions that everyone else in the call on both sides already knows
Client: "I told them we’d need blah." Dev (on a private channel with Manager): "That’s true, but it only came up after the 1st sprint was already done." Manager: "My understanding was that was only asked for after the 1st sprint."
Figure: Good Example: Manager is armed with relevant information as needed
Dev: "Heads up, they might be sensitive about this part as they have been very clear with us about it from the start and I missed it. This part was really my fault."
Figure: Good Example: Let the Manager know what parts are reasonable to push, and what battles are better surrendered
Video - Asking good questions