Blog

  • The Importance of Communicating Status and Plans

    The Importance of Communicating Status and Plans

    One of the best ways to control project success is to meet or exceed expectations.  One of the best ways to understand and impact expectations is through regular status and review.  Therefore, status reporting habits are an excellent way to improve the chances of success for your project.

    A Failure of Communicating Status

    I had an experience that has made me a firm believer in providing my clients with a weekly status.  In this case, the problem came from a sub that I trusted, and a customer that was happy and trusting.  I would periodically touch base on progress and tasks.  I left things to run on their own as did the client.

    We had some communication issues that led to my sub doing more testing and rework than the customer desired.  This confusion would have been a small problem if caught early, but instead, it went on for weeks.  Thus, by the time the client saw a large number of hours on small numbers of tasks, it looked like they were getting over-billed.  In a sense, they were.  Therefore, we ended up eating a bunch of billed hours and rolled the sub off of the client.

    A weekly status of hours and work would have brought this issue to a head earlier.  That early catch would have been easy to correct and saved headaches on both sides.  This situation could have ended worse, but part of the reason I did not over-communicate was due to the great relationship I had with the client.

    A Lesson Learned

    I learned from this bad experience that communicating status is an important detail to address.  I now send a status each week to every client large and small.  Most status reports are one project and one page.  However, sometimes I go to multiple projects per client and multiple pages.  I may also append some pages of notes or deliverable recap to make it easy to link tasks to outcomes.The status I send is not very complicated.  I list what was done, roughly how many hours were spent on the tasks, and then estimates of tasks and time for the week ahead.

    The status report takes less than fifteen minutes to put together each week.  However, I did spend close to an hour creating a template that is easy to fill out and still looks pretty good. Thus, the time I invested has more than paid for itself over the last few years.

    The status I send is not very complicated.  I list what was done, roughly how many hours were spent on the tasks, and then estimates of tasks and time for the week ahead.  This takes maybe fifteen minutes to put together each week.  However, I did spend close to an hour creating a template that is easy to fill out and still looks pretty good. Thus, the time I invested has more than paid for itself over the last few years.

    Keep It Simple

    The art of making a weekly status valuable is in its brevity.  Keep to simple line items and maybe even a summary at the top.  Consider that a client will only read the first part of the status.  Anything below the fold may be missed.  In particular, this scanning of status will occur as they receive one week after week.  Yes, it is a little bit of a CYA, but the real goal of this is to make sure you are on the same page as your clients about work to be done and priorities.

    A weekly status call would be a good way to keep it simple, but I recommend a written version as well.  The report provides something for future reference by your client.  However, it also provides you a great checklist to make sure your tasks completed each week match what you said you would do.  Communicating status seems like something everyone knows and values, but it is easy to get away from the process.  Beware if you do.  The lack of communication can cost contracts, clients, or even reputation.

  • Contractors or Employees? Options for Growing Your Team

    Contractors or Employees? Options for Growing Your Team

    In building a team one of the first questions that need to be answered is whether you will use contractors or employees.  Although this decision may be dictated by circumstances, it is important to recognize the pros and cons of each.  In the spirit of full disclosure, I have been a contractor for most of the last decade.

    Let’s look at the positives of employees first

    Loyalty used to be a huge plus for employees, but that seems to be less a factor every year.  However, an employee does still improve the likelihood of team continuity.  Employees may leave your organization, but it is more likely that contractors will move on.  This can cause a drain of business-specific knowledge.  Consequently, employees are more likely to give a return on the investment of training them on your processes.

    An employee also provides more ability for you to impact their attitude.  Never discount the productivity that can come from a happy and motivated employee.  There are steps you can take to make contractors happy.  However, you will have much more at your disposal to keep and motivate an employee.

    Contractors will sometimes talk about a partnership with their customers.  This is a good attitude to have, but at the end of the day, an employee is more closely bound to a company.  Their future is tied to the company success in a more direct manner than any contractor.  This symbiotic relationship does not guarantee everyone works together.  There are always going to be politics and personalities that drive a team.  Nevertheless, employees are at least going to have some shared benefits to come from a successful company.

    Finally, contractors tend to be project focused.  Your company may hire contractors for the long-term, but most will come in, focus on a project, and then move on.  This works for turnkey projects.  However, it is not the most efficient way to build a living, growing solution.  There are always ideas during implementation that get set aside but are valuable in future releases.

    Contractors have a different set of positive attributes

    It may seem cold, but contractors are disposable.  The investment made in a contractor should always be smaller than an employee.  Training and benefits are worries of the vendor, not your company.  A contractor should be primarily a short-term resource and it is usually easy to end a contract.  In any case, you let contractors go, but have to fire employees.  This has a lower cost no matter how you slice it.

    A contractor brings a new set of skills and experience.  Employees will have shared experience over time.  That is a strength of building a team but can also lead to a form of tunnel vision.  A contractor will have a different set of experiences and often can bring a new set of skills to the team.  They also will be on the hook to keep their skills current and marketable.  This can be a way to improve the overall skills of the team without paying for more training.

    One of the biggest strengths of using contractors in my experience is the ability to flex up and down those resources.  It is almost always easier to find another contractor than it is to hire someone.  You can also reduce contractor headcount quickly and reduce costs during slow seasons of business.  In fact, this is my most recommended approach to software development.  I recommend and have followed the process of building a core team that is small.  Once the team is in place, use contractors to handle peak or high-need times.  This keeps overall costs and commitments low while still getting work done.

     

     

  • Finding A Balance in Choosing Your Technology Tools

    Finding A Balance in Choosing Your Technology Tools

    One of the challenges we face when building a new product is the selection of the technology.  Finding a balance between a homogeneous or mixed solution can be difficult.  On the one hand, a single vendor is easier to work with.  However, on the contrary, you want to avoid lock-in, and single vendor solutions often lack the features of one built using multiple tools.

    All-In-One Solutions

    In my experience, a single technology solution almost never works for custom solutions.  Tools like Microsoft Access, FileMaker, and others that offer all-in-one solutions can be useful.  However, their use is limited, and customization can be painful, if not impossible.  That being said, simple applications like general accounting, address books, and catalogs are entirely possible with these tools.  These are solutions that need little customization and follow a sort of template solution.  These tools work, but often the end solution would have been cheaper to buy off the shelf.

    The cost of these solutions tends to be low as you can find resources that know the tool and have proven experience in it.  They know how to stay in the “safe” areas of customization and upgrades are often painless.

    Best-Of-Breed Solutions

    Another approach is to find the best tool for each feature or aspect of your solution.  This method often allows heavy customization and the ability to create your solution precisely.  However, there is a cost of integration.  The tools have to be made to work together.  Sometimes the “glue” used to put these disparate pieces together can be complicated to create and fragile once completed.  A change to any part of the solution could potentially bring down the system.  Upgrades become risky, and the pressure to leave things as they are can be enough to freeze the solution from enhancements and upgrades.

    The cost of these solutions can be very high.  In fact, this often is only a path open to enterprises and companies with a significant number of development resources.  It is very rare for one person to know more than a few of these sort of technologies.  Thus, there is often a need for at least a resource or two per technology.  Note that I said, “at least.”  Projects may require dozens of resources in each technology silo.  Keeping everyone busy during implementation requires substantial planning.  Therefore these projects can be challenging to manage.

    Finding The Sweet Spot

    There are more than two ways to view this problem.  So let’s look at the middle road.  Tools rarely are limited to a particular solution.  Thus, they will have strengths that can be used to solve other problems.  For example, a database can include business logic.  However, the front-end or User Interface tools can perform some as well.  Neither of these tools is likely to be the best way to implement business logic.  Nevertheless, it is possible.

    The key to selecting your technology stack is to find the best tools for your most significant problems.  These are the uses that will occur most often in your solution and have the highest impact for the customer.  To put this simply, make sure your key selling points are the features that work the best.  Likewise, these areas of focus should be the most stable, scalable, and easy to maintain.  You are not likely to spend enough time on ancillary features to focus on those solutions.

    Not Too Much and Not Too Little

    A single technology is rarely going to cover all of your needs.  However, a technology stack of three or four tools in tandem is very common.  This stacks can cover a lot of solutions without having to break the bank finding implementation resources.  When you use your technology choices in moderation it can keep costs down while still providing a complete solution.  It is a win-win for the company and the customer.