Last Updated on Tuesday, 15 December 2009 01:38 Written by Rodney McCabe
This is the third installment in a series about business process and how it can help small companies regain control of their business. Simple and repeatable processes help to improve quality as they get refined and increase efficiency. It can also minimize frustration that your customers may feel when errors or issues start cropping up.
The Current Process
In Take Control (Part 2), we met Jack and Jill. Despite their nursery rhyme names, they are very good at what they do; website production. When a new customer project starts, Jill gathers the requirements. This usually takes the form of Jill taking notes in a notebook during meetings with the customer. She has found that it is easier for her to initially sketch some prototypes of artwork and do a sample layout for on paper so the customer can visualize the end result.
With the requirements all set, she talks to Jack about the site so he can start in on any programming activities and she starts designing the graphics. During this time, the customer is preparing the textual content for the site and emails page text to Jill throughout the life of the project.
The day comes for the Jack and Jill to put their work together and demo it for the customer; he is pleased with the progress, but he needs an additional lead capture form, which Jack will need to code, and would like some graphics changed out. This type of iterative process happens several more times during which the customer continues to refine his page text that gets emailed to Jill.
When the site is ready, Jack connects to the customer’s production website, removes the old site if one is present and deploys the new site. In a perfect world, there is no need for post delivery support, thus once deployed, the customer is invoiced and the activity is complete.
Foreseen Issues
Let’s examine some foreseen issues with the process:
Communication & Collaboration
- Jill’s requirements take the form of notes in a note book. This works for her, but what about the rest of the parties in the team? If the customer wants to change something, there is no document for him to update.
- If Jill becomes unavailable, how is Jack going to know what the production host information is? Right now it is most likely stored in Jill’s notebook or her email.
- If the customer’s only interface with the company is Jill and she is unavailable, how do they get a hold of someone else? It’s not to say that they cannot reach Jack, but don’t you think it would be inconvenient or frustrating to try different phone extensions until you reached someone? Worse yet, what if it’s a virtual team; the customer may not even be able to reach Jack by phone at all!
Customer Relationship Management
Aside from the whole sales cycle, CRM is important for the other parts of managing customers. It also goes hand in hand with communication from above.
- If Jill is the point of contact for customers, how can Jack find out who they are and their contact information if he needs to?
- How can staff track dialog with the customer so ANYONE in WD Co. can quickly ramp up and service the customer? This includes notes and email correspondence.
Versioning
- Can they reproduce the site at will with the correct artifact/asset revisions?
- If the customer wants to go back to a graphic that they had three revisions ago, how is that handled? How does Jack manage his code changes?
- The customer and Jill have been emailing textual content back and forth, how do they track which version is correct?
- How is Jack notified of Jill’s changes and vice versa?
Data Protection
Don’t be surprised! Data protection (or loss) could definitely be a process consideration. Currently WD Co. stores their information on their local systems, and a hand written notebook. There are a lot of small companies out there that do not invest in redundancy, fault tolerance or backups. Even a cheap NAS with RAID 1 would be better than what WD Co. has right now. If a laptop drive crashes, they have a lot of work to recreate (for free).
The Infrastructure for the New Process
A great starting point for WD Co is to buy a server with some type of fault tolerance. Instead of rushing out and spending $5,000 on a great server though, they head to their favorite online auction house and buy a used server with RAID 1, 4 GB, and dual 2.4 Ghz CPUs.
I picked up my last development server (Proliant DL360) for $110. In addition to the specs above, it has 15k RPM 36 GB drives and came with two spares! Next time I will spend the extra $100 for 72 GB drives, but the price really can’t be beat. In the case of WD Co, this solves two issues:
- They now have a server to host a CRM, version control and document management
- They have “some” level fault tolerance. Throw in some backup procedures and things will get even better.
In addition to the new server Jack and Jill sit down to look at the software they have in house, skills they posses, and their budget. Here’s what they come up with:
- Communication & Collaboration:
Jack and Jill currently use Microsoft Office 2007 Professional to create documents, spreadsheets and send mail. This is great for individual productivity, but doesn't help the team much. To share information they decide to use Windows SharePoint Services 3.0, a free team collaboration package. Alfresco is another great package they considered, but they have both seen SharePoint in the past and decided it would be the easiest for them to ramp up on.
SharePoint has the concept of document libraries that can alert Jack and Jill of changes, perform document versioning, force checkout before editing and allow for different permissions. SharePoint also has free templates available for download from the Microsoft site. These include “IT Team Site” and “Project Tracking Workspace” which are just what they need!
- CRM:
The requirements for the CRM were simple: cheap and it needed to work the way they did. Since they don’t have much of a budget, they couldn’t afford to use an online CRM. This left a few popular open source solutions such as SugarCRM but the community versions didn’t integrate with Office as seamlessly as they wanted. Since they already worked with Office and their laptops came with Office Professional 2007 they have the licenses to install Outlook with Business Contact Manager.
BCM can link to the email addresses of business contacts. In addition, notes can be captured. This will allow for full history with the contact or account to be viewable. In addition, they chose to customize the account fields to capture data such as FTP accounts for the customer. Jack and Jill install Microsoft SQL Server 2008 Express, a FREE database server, so they can share BCM information.
- Versioning:
We mentioned SharePoint above as a way to manage document and content, but what about Jacks source code? While there isn’t anything to prevent code from being put into SharePoint, it is not really the right type of system. Source code control is usually done differently through SVN, CVS, Visual Source Safe, etc. Since the server is windows based, and there isn’t a budget for Visual Source Safe, Jack picks SVN. Now he has a system for performing code comparisons across versions and safely store his code.
It is important for me to point out that the solutions mentioned above are not nearly as important as the process that will leverage them. One could also pick a Linux based solution running SugarCRM, Alfresco and CVS.
What matters is that a process is put in place, people use it and it gets refined.
The New Process Unveiled
It has been determined that the Technical Services and Operations department will a ticketing system within the WD Co SharePoint site. Any person needing assistance will communicate through this means. The system has had a field added for the BCM account it applies to.- Account Creation: When a new customer project starts:
- The VP of Sales & Marketing (Jill) creates an account in BCM and ties the contact/lead to it. She also fills in all of the required information
- Jill, acting as the VP of Sales & Marketing, enters a new ticket for the Technical Services Group to create a new client workspace.
- As the VP of Sales & Marketing she assigns an Account Executive (herself) to the project by filling out the Account Executive field in BCM.
- As the VP of Technical Services, Jack responds to the ticket:
- The ticket is assigned to a System Administrator (Jack)
- The System Administrator creates a workspace (SharePoint site) specifically for that customer, which contains ticket tracking, document library and Wiki for miscellaneous notes. The SharePoint site is custom template they made that contains blank requirements, signoff and production release documents.
- The System Administrator creates a SVN repository for the customer
- The System Administrator updates the BCM fields for SVN URL, SharePoint URL and SharePoint Site Name
- The System Administrator closes the ticket and the Account Executive is notified (automatically)
- The Account Executive (Jill) meets with the customer to gather requirements then shares the information:
- The Account Executive checks out the original requirements template in SharePoint
- The Account Executive can scan sketches if necessary
- The Account Executive formalizes notes into the requirements document along with the scanned images
- The Account Executive updates the SharePoint document
- As the Account Executive, Jill holds a meeting with the VP of Technical Services (Jack):
- The VP of Technical Services assigns himself as the System Administrator for the project
- The VP of Technical Services assigns himself as the Programmer for the project
- All team members are required to add themselves to the SharePoint alerts for documents, lists, and issues
Thus far, no work has been done on the actual deliverable and you may be thinking that this is a lot of work but it really isn’t. In fact this adds very little overhead and can reduce issues in the long run … hang in there.
- As before, iterations occur with the customer: The software development process can get fairly involved and I do not want it blur the topic at hand. At a high level, requirements are updated, code is updated, content is updated, everything gets versioned and the new site is rehosted for feedback during this step. The process should outline:
- Who gets notified
- How they get notified
- Where the assets and artifacts are located
- What marks the entry and exit points for this step
- Going Live:
- When the Account Executive is notified from the customer that they are to go live, the Account Executive creates a "Production Rollout" ticket in the project's SharePoint site
- The assigned System Administrator:
- Retrieves the current FTP information from BCM
- Deploy the new site
- Checks out the Production Release document template from SharePoint and fill it out with any technical information.
- Update SharePoint
- Marks the ticket as completed
- Communicating the client go live:
- The Account Executive (Jill) checks out and adds any business related content to the release document. Any changes are then checked in.
- The Account Executive then sends an email to the customer (which gets stored in BCM automatically)
- Attach the Production Release document
- Attach a signoff form from SharePoint
- Completing the initial project: Signoff form received.
- The signoff form is updated in the team site
- The Account Executive creates an "Invoice" ticket for the VP of Operations
Why are we doing this again?
- Believe it or not, this process will buy you time, which some also call money. Time spent from miscommunication, waiting around on others to forward emails, downtime, etc adds up fast.
- With a solid process, assumptions about responsibilities are greatly reduced.
- With a process and supporting infrastructure in hand Jack and Jill are positioned to grow their business easier because the process references roles, not people!
Again, there are many ways to skin this cat ... this is only one, simplistic approach and is certainly not comprehensive. Creating a process can be as simple or complex as you would like to make it. In reality the scale of this is too big; it should be several smaller workflows that are very distinct.
Next time we will dig into steps 1-4 to see how they can be improved. Time permitting, I would like to formalize the process a bit more and see how we might capture metrics so we can quantify improvements over time.