SSW Foursquare

Rules to Better Account Management - 24 Rules

Once you've got the job, software projects are delicate activities and the client needs love. It's up to the Account Managers to keep everyone on the same page, especially if there is no Scrum Master.

The Account Manager is responsible for invoicing, resource management (booking developers) and conflict resolution.

  1. Do you inform the client of any resource or rate changes?

    An important source of comfort for any client is a feeling that they are in control and they know the basics of what is going on. The fundamental part of this is who is working for them and how much it is costing.

    Therefore, if you change the developers on a project or if one or more of their rates change, it is very important to inform the client, before sending them the next invoice, where they will find out and could think that you're being shifty.

    We have standard templates for these situations in our intranet shared documents. You can see some examples here:

    Figure: Good example - Email informing the client about an individual rate change

    Figure: Good example - Email informing the client about a company-wide rate change

  2. Do you regularly check up on your clients to make sure they're happy?

    It's important for Account Managers to stay involved with client projects past the sales stage and into the implementation stage. The best way to do this is to call them once every 2 months or so once the project gets going, just to guage their overall satisfaction and happiness.

    The best way is to set yourself reminders to do this using FollowUpThen.

  3. Do you provide a high level "Project Progress" report for clients?

    Communication is a critical part in project management and it's essential to provide as much information as possible to your clients so they know the project's progress.

    You should provide the following report to clients:

    • Project Progress Report: This report helps clients to review the current project progress, check the status of the project and whether they are over or under estimates.

    rulestobetterprojectprogress2 :::good

    Figure: Project Progress Report

    :::

  4. Do you know how to best utilize your Solution Architects?

    To have a successful project, it is often imperative to have an experienced Solution Architect or Tech Lead running the project. They can support your lesser experienced developers, keep projects on track, or just help make those important tech decisions that pop up throughout a project.

    Often, you only have a handful of people who are experienced enough to do this. So how do you share the love and make sure all of your projects go well and that their experience is shared throughout the company?

    A great way to manage this, is to make sure some of your Solution Architects are only booked to one project 4 days a week, with the 5th day floating. This frees them up to support more than one project, and help share that valuable expertise around!

    Last day (floating day) should be used for:

    1. Client emergencies/support
    2. Spec Reviews
    3. Other teams' Sprint Reviews
  5. Do you book in a minimum of 1 day's work at a time?

    Small increments of work add a lot of administrative overhead to work, drastically reducing company profit from client work. As a general rule, make sure any billable client appointment lasts 1 day at a minimum and continues in a similar manner throughout the remainder of the booking.

  6. Do you make sure your developers get to see each other regularly to avoid becoming disconnected?

    Working onsite has a number of benefits such as increased communication with the client and increased perception of value. However, if a developer is onsite for an extended period, they can start to feel disconnected from your company and their co-workers.

    The solution is to bring them back to the office 1-2 days a week to reconnect with everyone and still feel like they're part of a larger organization.

    This should be organized up front with the client when making the booking.

  7. Bored Developers - Do you set maximum periods for a developer to work at any particular client?

    As a consultancy, your developers expect to see a variety of projects in their time working for you, and if they get stuck on any one client for too long, they may decide to look elsewhere for that variety.

    In order to keep them interested, it’s a good idea to cycle them off and on to particularly long projects. This should be proactively offered to developers, as they may not realise it’s an option.

    You also need to make sure this is not a nasty surprise for the client, so it’s best to add it to your contract or Terms and Conditions  so it’s understood from the start, and can always be referred back to later. To soften the blow, offer to cover the costs of the new developer for the handover period (normally 1-2 days)

  8. Framing - Do you know to avoid negative words or phrases?

    It’s easy sometimes to accidentally undersell something or someone by using potentially derogatory words that may give a client the wrong idea.

    This can be especially bad if you’re using potentially triggering words or phrases:

    XXX is more junior/less experienced/less skilled than YYY.

    Bad Example – Why are they paying for a junior, a less experienced, less skilled person?

    XXX is more affordable than YYY.

    Good Example – Avoids trigger words like “junior” and has a positive spin and an upside for a client.

    XXX needs more time to learn this technology.

    Bad Example – Why are they paying for someone to learn?

    There’s always a short period of upskilling in any project until everyone’s fully proficient in the whole stack.

    Good Example – Normalizes the issue

  9. Do you know the best way to let clients book a meeting with you?

    Hey there! Are you tired of the back-and-forth emails trying to find a suitable time for a meeting with external or internal parties? Well, fret no more!

    That's what scheduling automation is for, there are tonnes of tools that solve the problem.

    The tools

    Video: Microsoft Bookings - How to get started (2 min)

    Scenario: You've got the client interested, but then booking in a time can be hard work. Account Managers often have to bounce between the clients availability and their own calendars with the classic tale of...


    Uly: "I've got a slot at 3pm on Friday, are you free?"

    Bob Northwind: "No sorry, I'm on leave that day!"

    Uly: "How about Monday 9am?"

    Bob Northwind: "No sorry... I'm at a yoga class then!"

    etc...

    Figure: Bad example - It's hard to find a common time to book a meeting if you don't have scheduling automation

    linkedinlink
    Figure: Good example - A nice link in your LinkedIn profile for easy bookings

    You can create an individual booking page ("Bookings with me") or a shared booking page, for a team ("Microsoft Bookings").

    Create a Microsoft Bookings page for a team

    1. Open Microsoft Bookings
    2. Click on "Create" | Choose if you want to create from scratch or clone an existing one
    3. Choose a name for your booking page (e.g., "Initial Recruitment Meetings") and customize it with your branding and settings
    4. Invite the Staff members that will be part of the calendars, and choose their roles
    5. Set up a service - this is a booking type that can be selected when visiting your booking page
    6. Add any required custom questions or additional information
    7. Choose who can book appointments - anyone with the link, people in your organization only, or no self service
    8. Save your changes and share the booking page link with external parties
    9. Now, they can easily book a meeting with you by selecting a suitable time slot from the available options 📅
      microsoftbookings
      Figure: Setup - Setting up a new Service in Microsoft Bookings

    Create a Bookings with me page for individual bookings

    1. Go to Bookings with me | This will trigger the creation of your individual calendar
    2. Create a new meeting type | Set the availability and duration of the meetings
    3. Add any specific questions or information you need from the external parties
    4. Save your changes and share the booking page link with the people you want to meet individually
    5. You can also retrieve this link by going to your OWA (Outlook web access) calendar and grabbing it from the left hand sidebar
    6. They can now easily schedule a meeting with you by selecting a suitable time slot from your availability 🕒

    Tip: If you will use this link in a lot of emails, create an autocorrect for it in Outlook

    Now that you created your booking calendar, one of the best places to use it is on Social Media, and below are instructions on how to use it on LinkedIn:

    1. Turn on "Creator Mode" first - you can't have a link in your profile without it turned on

      creatormode
      Figure: Setup - Turn on Creator Mode in LinkedIn

    2. Now login to LinkedIn | Click on “Me” | “View Profile”
    3. Click on the Edit profile button
    4. Scroll all the way down to “Custom Action”
    5. Add link and link text | Save

    That's it! You're all set to let externals book meetings with you hassle-free using Microsoft Bookings! 🎉✨

    Remember, it's important to keep your booking pages up to date and regularly check for new bookings. Also, make sure to follow up with any additional instructions or confirmations after a booking is made.

  10. Do you reward your developers for completing an important milestone on time and budget?

    When your team has completed an important milestone successfully, they should be rewarded with a morale boosting event such as lunch, dinner, the movies or bowling.

    Figure: Email to accountant/team members and client informing of project success and reward event |

    Note: For smaller milestones, you can still give the team recognition though a "Ring the Bell" email.

  11. Do you encourage your team to do weekly "Client Love"?

    Developers should carry out "Client Love" every week. It's important that the account managers encourage this.

    1. From an individual developer perspective, you can check their timesheets on Friday to look for extra initiative shown
    2. Ask your team to send you an email whenever they show the client some love, so you can track it
  12. Do you know who are the most appropriate resources for a project?

    Most companies have staff varying in experience and price.

    While all staff pass strict recruitment procedures including technical and communication assessments, all staff have different skill sets. For example, some have a broader level of knowledge and some are more proficient at project management.

    When determining which staff are appropriate for which projects you need to analyse the needs of the project. Some may not require management skills, (for example if we are providing resources to another technical organization), while some projects may require only a narrow field of knowledge, (e.g. creating Xamarin forms).

    For any major project, a broad spectrum of individuals may be required which will utilize each level of staff.

  13. Do you make sure Devs are comfortable with their assignments?

    It’s easy when looking at availability reports and skill matrices to dehumanise the developers you’re assigning to work. Make sure to always keep the human touch by doing the following:

    1. Always call the dev before assigning them to a new client
    2. Make sure they’re happy with the technology
    3. Make sure they’re happy with the time commitment (e.g. X days a week for Y weeks)
    4. Find out if they need a handover
    5. Although generally client work always comes 1st, there may sometimes be internal bookings that might need to take precedence.
  14. Do you perform client follow ups?

    You should have every day a list of follow ups if using the FollowUpThen service. Perform follow up calls and emails as necessary in the following priority order:

    1. Existing Clients
    2. Prospects, leads, or new business
    3. Internal affairs
  15. Do you do invoicing in a timely manner (i.e. once a week)?

    The majority of client issues arise from miscommunication and miscommunication on invoices and accounts issues can make things very difficult very quickly.  Therefore, you should always process invoicing on at least a weekly basis.

    See Rules to Better Timesheets

    During invoicing you should ensure:

    1. All timesheets from the previous week have been submitted by staff
    2. Review your clients in TimePro and determine whether you need to issue a new invoice, or draw down time against an open pre-paid invoice
    3. Allocate the unallocated staff time for each client to the appropriate new invoice or existing open invoice
    4. Generate a PDF version of the invoice or pre-paid balance report to be sent to the client, and triple check it for accuracy
    5. Make any necessary changes, and once the invoice or report is in final format, send to the customer contact as an attachment with a personalized note. Make sure to copy your company's AR department so they can monitor any payment
    6. Call the customer contact for billing and let them know you are sending over an invoice or report, and offer to answer any questions they have
    7. Always double check that your client hourly rates in a time tracking system such as TimePro to match your agreed upon rates (i.e. taking into account any discount for pre-paid time, etc.)
  16. Do you realize the value of existing clients?

    It's often quoted in marketing circles that it costs between 60% and 600% more to sell to new clients as opposed to existing ones. This means you should nurture your existing client relationships during and after a project, as you have a much better chance of getting more work from them than from a new client.

    1. Managers should encourage their developers to practice "Client Love"

    2. Managers should practice "Client Love" themselves with 2 main strategies:

    Tip: Get in the right mindset by always being interested in your clients' lives outside of work: find out about their hobbies, sports interests, kids etc. When you meet them, get to know them personally, If you come up with the perfect idea for a present for an important client, get the purchase approved by your manager and send it off.

    Keep your current clients happy

    Feedback has been received from larger clients in the past that they expect regular check-ins and guidance from senior staff.

    • A nice informal way to arrange this is to buy your client lunch once a month
    • Review the project for half an hour, then grab a bite to eat
    • The review should cover the project as a whole, any niggling problems, and discuss any upcoming projects
    • Do this free of charge

    Regular check-ins are an important part of the broader key topic of communication. For current clients, a week must not pass without a phone call or some other contact. A lot of the time this will be emails from the developer. Almost all disputes arise when you don't speak to a client for a period of time - annoyances can fester and small misunderstandings can turn into real problems.

    A "client relationship problem" is when you have said "no" to a client and they let you know that they strongly disagree. In that case:

    • Tell them the reasons for your stand
    • Tell them that developers will sometimes do the wrong thing - clients have different opinions of what that is
    • Tell them you are authorized to split a problem, offer them the solution and ask if they are happy with that solution

    If they're still not happy you may need to refer them up the chain of authority (but don't get comfortable doing this - work on improving your own conflict resolution skills).

    Stay in touch with past clients

    Have a system in place that allows you to stay in touch with past clients, even ones you may not have spoken to in a while: send a useful newsletter to subscribers so your business keeps fresh in their mind. That way when they suddenly realize that they need some work done, you're right at the top of the list.

    Secondly, have a follow up system in place so that at least one past client gets a call every 3 months. Make it friendly, not pushy. You should use a line like "I'm just checking in to see if everything is still running smoothly". Setting up a system like this will result in more repeat business and less need to spend money on marketing.

  17. Do you know the non-Scrum roles of a project?

    Medium to large software development projects have people on them with varying roles and responsibilities. In order not to double up, or miss something, it’s important to define what each should do.

    Scrum already covers the roles of the Developers, the Product Owner, and the Scrum Master, but from a consultancy’s side, there’s also the Tech Lead and the Account Manager to consider.

    roles in bricks squared
    Figure: 5 roles in a Tech Project

    Account Manager

    Tech Lead

    • Displays ownership of the project, and keeps the code quality high, and technical debt low
    • Responsible for the delivery of the project into production
    • Spec Review - Primary communicator with the Product Owner
    • Project - Primary communicator with the Product Owner
    • DevOps - Ensures good practices are followed e.g. release to production as frequenty as possible
    • Responsible for the architecture and technical direction of the project
    • Helps the Account Manager with technical areas of conflict management
    • Keeps on top of the budget and timelines

    tech lead report
    Figure: Don't forget! You can use reports to identify projects that are being worked on without Tech Leads

    Figure: Good Example - copy this as email template and send to the Tech Lead so they know what is involved

  18. Do you nurture the marriage? (aka Keeping customers with "Software Reviews")

    You won the job with a great 1st Date (aka Spec Review), but no marriage can last without ongoing effort.

    Left to their own devices, most developers will slowly make more and more unmaintainable code, that is only comprehendable by themselves. This isn't a big problem for them as they are in it every day and know how it all fits together, but if they're not coding to a set of industry standards, you'll find this code very hard for anyone else to maintain.

    BadCode
    Figure: Bad Example - Would you want to maintain this code?

    This can be fixed by having regular software audits with a Solution Architect to keep the developers accountable.

    Each month, the Account Managers call all their current clients that have had a substantial amount of work done and offer them a Software Review.

    This makes more maintainable software with better architecture using industry standards.

    More information: The process:

    1. In the pre-sales, you should have already explained the concept of Software Reviews.
    2. Look at a report to show your main current clients (best seen by who was invoiced in the past month)

      • Tip: This is also a good thing to have up on the wall as a reminder of who your main customers are at the moment.

    TotalInvoicedReport
    Figure: A sample report to see your top clients

    1. Choose your top clients based on who's had a substantial amount of work done (e.g. Say 10k in the last month)
    2. Call them. Ask them how their project is going and if they have any concerns or anything they’d like changed

    3. Offer them a Software Review with one of your top consultants. This will ensure that best practices are being followed for all your major projects and help to ensure the quality of the solutions developed
  19. Do you manage requests for event refunds effectively?

    Every now and then, a client will purchase training or event passes and be unable to attend. In this scenario, 2 things should occur in order:

    1. They should be offered an alternative. This is important as if they needed the training, they may well appreciate being given the option. This requires a conversation with the client and the alternative options are:

      1. A different date that the same course is being run.
      2. A different course that interests them.
      3. An equivalent dollar value of developer time to come onsite.
    2. If they decline and ask for a refund instead, then this should be processed immediately. This is absolutely vital as delaying giving a client their money back rapidly decreases their opinion of the integrity of your company.

    As an example, this means that the Accountant can always issue a refund for an event immediately, without any further approval needed from the boss, so long as at least 1 alternative has been verbally offered to the client (normally by the Account Manager)

  20. Do you ensure your client projects who don't use full Scrum, at least have a "Mini-Review"?

    Ideally, all projects should be managed using Scrum, with Sprint Planning, Reviews, and Retros, Daily Scrums, Sprint Backlogs etc., but some client engagements are too short to justify this.

    In these cases, as a minimum, there should be a backlog and a Kanban board, and the developer should still be doing Daily Scrums with the client.

    In order to ensure this, you should schedule a "Mini-Review" once a week for any client jobs that are too short or ad-hoc for a full Scrum process. The client and the developer need to be in this meeting, and sometimes it might make sense to have it at the usual daily Scrum time.

    In this meeting, you should check the following:

    1. Look at the board
    2. Look at the backlog (if just using Kanban this might be the same as the board)
    3. Ask what has been done since the last Mini-Review (or the start of the project)
    4. Ask what will be worked on next
    5. See if the current booking remaining is sufficient... i.e. book in more time as needed

    Ideally, the account manager would be a good person for this.

  21. Do you have a Cloud Architect in your projects?

    The goal of a modern complex software project is to build software with the best software architecture and great cloud architecture. Software developers should be focusing on good code and good software architecture. Azure and AWS are big beasts and it should be a specialist responsibility.

    Many projects for budget reasons, have the lead developer making cloud choices. This runs the risk of choosing the wrong services and baking in bad architecture. The associated code is hard and expensive to change, and also the monthly bill can be higher than needed.

    The focus must be to build solid foundations and a rock-solid API. The reality is even 1 day of a Cloud Architect at the beginning of a project, can save $100K later on.

    2 strong developers (say Solution Architect and Software Developer)
    No Cloud Architect
    No SpendOps

    Figure: Bad example of a team for a new project

    2 strong developers (say Solution Architect and Software Developer)
    + 1 Cloud Architect (say 1 day per week, or 1 day per fortnight, or even 1 day per month) after choosing the correct services, then looks after the 3 horsemen:

    • Load/Performance Testing
    • Security choices
    • SpendOps

    Figure: Good example of a team for a new project

    Problems that can happen without a Cloud Architect:

    • Wrong tech chosen e.g. nobody wants to accidentally build and need to throw away
    • Wrong DevOps e.g. using plain old ARM templates that are not easy to maintain
    • Wrong Data story e.g. defaulting to SQL Server, rather than investigating other data options
    • Wrong Compute model e.g. Choosing a fixed price, always-on, slow scaling WebAPI for sites that have unpredictable and large bursts of traffic
    • Security e.g. this word should be enough
    • Load/Performance e.g. not getting the performance to $ spend ratio right

    Finally, at the end of a project, you should go through a "Go-Live Audit". The Cloud Architect should review and sign off that the project is good to go. They mostly check the 3 horsemen (load, security, and cost).

    MS Cloud Design Patterns Infographic SSW Edited

  22. Fixed Price – Do you clearly deliver the project and start the warranty period?

    Once your internal testing is complete and you believe the fixed price project is finished, it's important to clearly communicate the beginning of the warranty period.

    Send an email like this:

    Figure: Good example

  23. Fixed Price – Do you transition back to T&M at the end of the warranty period?

    Towards the end of the warranty period, it’s important to ascertain whether the client would like to continue any further work on a Time & Materials basis, and let them know that, if not, it’s likely their developers may be booked for another client.

    Your 1st choice should just be to book the developers for some ongoing T&M days, but, failing that, send the following email:

    Figure: Good example email

  24. Do you review and update CRM?

    You should review your current open opportunities in CRM:

    1. Update open opportunities as necessary, ensuring the status (warm, cold, hot) is accurate, as well as the deal value, and the contact information
    2. Close any opportunities that need to be closed either won or lost
    3. Follow up with any open opportunities that were not part of your followupthen email block

    You should add new opportunities :

    After initial phone calls with new opportunities, put them into CRM making sure that:

    1. All client contact data is accurate
    2. All company information is accurate
    3. Deal Value is accurate
    4. Purchase timeline is accurate
    5. Notes on the deal are up to date
    6. The deal is in the correct
We open source. Powered by GitHub