Thursday, 26 March 2020

Building a Virtual Consultancy

The COVID-19 pandemic has forced many organisations to embrace remote working. However for many of us in consulting working remotely is nothing new and there have been a deluge of blog posts and articles giving tips and tricks for working effectively from home.

This article is a bit different. I'm going to go beyond looking at how individuals and small teams can get by under lockdown and instead look at how you can setup and run a successful consultancy business without any office.

Starting Up

To get your consultancy off the ground you are going to need three things.
• Product
• Process
• Prospects

Product

For a consulting business you need to decide whether you are selling expertise by the hour or bundled solutions for a fixed price. Either way you will need to be able to deliver on your promises. So find a technology or niche in which you can be an expert and exploit it. To grow you will need to attract other people to join you who can also deliver the niche expertise so get networking and building a pool of trusted colleagues.

Process

All organisations have processes and so will your consultancy. However always go for cloud or online processes first. Don't be tempted to start storing databases on old laptops or building up stacks of paper forms. Migrating from an on premise process to the cloud is not fun so start in the cloud and scale up from there.

Prospects

You aren't going to get very far if you have no-one to buy your product. Identify prospects that align to your niche. Who has tricky problems that you already know how to solve? Find them and make contact. A great way to do this is to build a reputation in your niche. For example if you are aiming to build a Salesforce consultancy go to the Developer and Administrator meetup groups, speak at them, demonstrate your expertise to the people who can influence the budget holders at your target companies.

Building Out

Once you have your first couple of engagement sorted it is time to start getting structured about how you run your consultancy. You will need to consider the following:
• Business Support
○ HR Processes
○ Recruitment
○ Performance Management
○ Pensions and Benefits
○ Insurance
○ IT
○ Asset Tracking
• Sales
○ Sales Processes
○ Client Management
○ Partner/Alliance Management
○ Contracting
○ Invoices
○ Sales Tools and Assets
• Delivery Management
○ Resourcing
○ Project Tracking
○ Project Closure
○ Delivery Assets
• Knowledge Management
○ Training
○ Certification
○ Wiki

All of these myriad items can be delivered via processes implemented on cloud systems. I have experience of this on Salesforce. I worked at a consultancy where all our processes were implemented in our Salesforce org or similar cloud provider.

Growing and maintaining a positive culture

This is the most important area for a remote or virtual consultancy. How can you ensure that customers and employees get a consistent and good experience when interacting with your business? The answer is by fostering a positive and inclusive culture where everyone in the business is agreed and aligned with the goals and working practices of the organisation.

But how?

Start with a clear goal for your consultancy and communicate this to the people you hire. Are you building a lifestyle business or are you building something to sell? What is the point of your business? Decide on this and communicate it clearly to attract people who align with your goals.

To make the virtual organisation work you must get everyone to buy in to it. Look at the positive aspects of remote working and address the negatives with mitigations. Here are some of the more popular objections along with some suggested mitigations

Remote workers don't get to interact face to face

Use video conferencing on all calls to get face to face. Sometimes people like to hide that they are working from home but using video calling helps to fill in some of the non-verbal communication that is lost on a phone call. It also helps to keep people focused on the call and not getting distracted by emails or other tasks.
Suggested Tools 
Google Hangouts, Skype, Microsoft Teams

How can I keep track of where my team is and what they are working on?

Be disciplined about everyone having a daily 'check in'. This works well as a short message to your colleagues about where you are, what you are doing today and how yesterday went. This allows everyone to keep in touch and aware of what everyone is working on. Doing this as a post on a work social media feed like Salesforce Chatter or Slack means that people aren't deluged by email and don't have to sit through a long stand-up call for the entire company.
Suggested Tools 
Salesforce Chatter, Microsoft Yammer, Microsoft Teams,
Slack

It is hard to build connections with people if you don't meet them face to face

Have one day a month where you get the entire company into a room. Set this aside from client projects and use the time to review the state of the business in the morning then do some fun team building activity in the afternoon.
Suggested Action
Book a meeting room in a hotel or business centre

There are so many channels for communication how do we know what to use when?

To mitigate this one you need to decide what channels work best for what types of activity. Things to consider are timeliness, audit trail, search-ability and accessibility. As an example we decided that we would use Skype chats for messages that needed an immediate response. We used salesforce chatter desktop for non-urgent FYI type of information and the daily check-ins. Each project would have a separate skype channel for communicating between team members.  We minimised email completely and only used it for communicating outwards with prospects or clients where we could not use skype or chatter.

How can we manage our knowledge so that we don't lose it if people leave?

With everyone working in different locations you might think it would be difficult to retain knowledge about how things have been done, gotchas and mistakes etc. However take a look online and you will see a plethora of solutions. Stack Exchange is a particularly good example of knowledge management for very diverse communities. There are commercial versions of Stack Exchange that can be deployed internally for you to manage your knowledge in a natural Q and A style. The process should work as follows. Someone encounters a problem, they search the knowledge base of questions and answers for some keywords relating to their problem. If they find the answer, great they can stop and apply that answer and give some kudos to the answerer before moving on. If their problem is unique they create a new question capturing the crux of the matter and then push a link to it out on the more immediate channels such as skype or slack to find out if anyone else has an answer. The team then comes together to find an answer and the once found the person who encountered the problem writes up the solution as an answer to their question on the knowledge base.
Suggested Tools
Stack Exchange, Quandora, Wiki

How can I ensure everyone has a safe and secure working environment?

There are two aspects to this, one is the safety and suitability of each persons working environment, the second is the security of that environment.
Setting out from the point of recruitment it is important to discuss with everyone their preferred working environment. To work effectively each person is going to need a permanent desk in a quite room in their house. It will be necessary to do a home working assessment as specified by the HSE (https://www.hse.gov.uk/toolbox/workers/home.htm).
If the candidate does not have a suitable working environment at home there are however alternatives. Shared and serviced office space is a good alternative, although not in a pandemic lockdown situation.
To address security you should educate everyone about information and physical security and promote a paperless environment. Laptops should be locked away each night if left in a shared office space. Children should not be permitted to play on corporate laptops or phones. When left alone on a desk laptops should be secured with a lock wherever possible and if that isn't possible they should be packed up and taken along with you.

How can I meet face to face with clients if I don't have an office? 

There is certainly a lot of cachet in a swanky office with luxurious pot plants or a two story fish tank. However if you are building a new business there is no need to sink capital into an office. Professional bodies like the BCS and IET or IoD offer meeting room hire at reduced rates for members in their offices so join a professional body and make use of the facilities. Or meeting rooms can be hired at serviced offices or hotel business centres. Quite a lot of the time though prospect clients will be more than happy to meet at their office, it involves less travel for them. Some may even be happy with an informal meeting in a pub or restaurant.

Summary

In this article I have discussed what to consider when setting up a consultancy consisting of exclusively remote workers. The key things to remember when starting up are, Product, Process, and Prospects. Build all your processes in the cloud, go paperless. Be very clear about your goals and purpose, hire people who align with those goals. Build a positive culture using daily check-ins, monthly face to face meetings, video calling and through a shared knowledge management system.

Throw off the shackles of the physical world and build a virtual future.

Thursday, 2 January 2020

The data elements of successful data migration


Introduction


This post describes the data elements if successful data migration. It follows from the introductory post Four elements of a successful data migration.

The data element can be subdivided into four components to help us categorise the issues we must address and information we must find to fully understand the data we are migrating.
  • Quality
  • Location
  • Volume
  • Security
We can represent these four components using a pyramid.


Quality


The quality of the data being migrated is critical to the success of the migration because it determines whether or not the data is accepted by the data owner.

We must be sure that the migration process does not cause the quality of the data to deteriorate. To assess this we must understand the quality of the source data. This can be done by working with the client to determine the key metrics for the data quality. it is always necessary to involve the data owner in this exercise because we should ensure the metrics align with their goals and priorities for the data.


Quality Metrics


Here are some examples of data quality metrics that might be useful.
  • Total count of records.
  • Total count of contact records.
  • Count of Contact records missing a last name value.
  • Count of Contact records missing an email address.
  • Percentage of Contacts missing a last name value.
  • Percentage of Contacts missing an email address.
  • Sum of all Opportunity amounts.
  • Sum of opportunity amount by Owner.
  • Sum of Opportunity amount by Account.


Do not try to clean or improve the data quality during the migration


This might sound odd or even lazy but there is a good reason why we should avoid cleaning the data or removing duplicates from the data during the migration. We must provide evidence through our testing that we have migrated all the data that is in the scope of the migration. If we can’t prove this it may be that we have lost some records in transit. If we implement a transformation to remove duplicate records it becomes very difficult to determine if a discrepancy in row count between source and target is due to a legitimate merge of duplicates or an error in the process. Likewise if we are cleaning fields during the migration it becomes very difficult to determine whether

One of our goals should be to make it as easy as possible to prove that the migration has completed correctly.


Location


We should clearly understand from where we will get the data for the migration. This could range from a set of CSV files to a cloud system or API. Knowing the source of our data we then must decide on where it will reside during the migration. The two main options here are either an on premise location or in the cloud.

The answer to this question will depend on,
  • The tools we have chosen to use to move the data
  • The target system
  • The security requirements of the migration

There are some guidelines we can employ to inform our decision.
  • Treat production PII data as if it were toxic waste.
  • Limit the places you store it.
  • Limit who can access it.
  • Securely dispose of it when it is no longer needed.
A staging database or filestore can be a very useful tool in the migration process. These can be on premise or in the cloud.

If the client already uses databases on premise ask the client to spin up a database for you in their infrastructure. This has the benefit of keeping the data within the client's boundary of control.

Using a client owned on premise filestore for staging the migration data in flat files keeps the data within the clients boundary of control.

If the client does not have any existing databases or filestores the data could be staged in the cloud. The client will need to be comfortable with this approach and it may be a tougher sell than the on premise option. The considerations for a cloud staging database are,
  • Does the client already use a cloud platform that can be reused?
  • Does the client need to purchase access to a new platform?


Volume


The volume of data to migrate will inform our choice of process and technology.

The list below shows the appropriate choices for increasing volumes of data.


Up to Hundreds of Records

Manual migration by direct entry of data through the UI or use of the UI import wizards


Thousands of Records

UI import wizards if the data has only a few links to other objects and requires no transformation. Dataloader.io or Salesforce Dataloader if the data has many links to other objects mapped via external IDs. A manually managed process could be acceptable but an automated one would be preferred.


Tens of Thousands of Records

Salesforce Dataloader (Dataloader.io may require a fee at this volume level), Talend, Pentaho, an automatic and repeatable process is required to make this manageable.


Hundreds of Thousands or Millions of Records upwards

Talend, Pentaho, Mulesoft, using parallel threads where possible, an automatic repeatable process is a necessity.


Target and Source system capacity and limitations

It will also be necessary to validate that the target system can accommodate the expected data volume. With knowledge of the volume and chosen process technology we must then test the speed of the migration to determine the elapsed time that it will take so we can plan the migration. We need to determine whether the volume of records can be loaded within our migration window. If we predict that it will not fit we may then change our process from a single migration to a staged migration across a number of days or weeks.


Security


Security sits at the top of the pyramid because it is the overriding concern for the migration. We must ensure that the data remains secure during the migration process and the consequences if the data is not transferred securely can be severe.

To address this we need to understand the security classification of the data and be clear about who will have access to the data as it is migrated. Does the data contain personally identifiable information? Does the data contain sensitive information? What would be the impact of a loss of the data during the migration?

For example if the migration process is developed by a third party or consultancy, it may be prudent that they should not have access to the production data for the migration and so the process would be handed over to an internal staff member to execute.

We must also consider the legal obligations placed on us by the relevant legislation e.g. GDPR and the determination of who is the data processor for the migration.


Summary


There are four primary considerations relating to the data of a migration. They can be represented by a pyramid where the overriding consideration is the security of the data. The quality of the data will determine the usefulness of the data once migrated. The location and volume of data will determine what tools we may use for the migration process.

























Friday, 1 November 2019

Four elements of a successful data migration

Data Migrations are difficult


A data migration is more than just a technical exercise to move data from one system to another. Often these projects take longer and cost more than we would like. How can we mitigate the risks inherent in a data migration and ensure that we are successful?
In this series of posts we will present the four elements that contribute to the success or failure of data migration projects.
These are 

  • Data
  • Methods
  • Technology
  • People
We can arrange these elements into a pyramid to show how they relate to each other. Technology and People form the base of the pyramid. Data sits at the top supported by Methods which ties together the Technology and people.

The Data Migration Pyramid

Data  
To be successful in our migration project we must have a very good understanding of the data involved. This means that we must explore the source and target systems to find all the objects and fields that need to be migrated and we must explore the data itself to assess its quality. Our understanding of the scope of the data and its quality will give us the basis for our estimate of the complexity and effort involved in the migration. We are also responsible for ensuring the security of the data during the migration. For this we must understand the access controls for the data in each of the locations in which it will reside. We must then also understand where the data is, where it will be processed during the migration, and the target location of the data.

We need to know what data objects and fields we are migrating. We need to have a measure of the quality of that data. We need to know the source of the data and the target location for it. We also need to understand how we will keep the data secure and comply with data protection legislation during the migration.

 

Methods

We need to understand how the migration project will be executed and this is the scope of the method element. The first aspect to consider is the contract. Should we commit to deliver the entire migration for a single price in a fixed timescale? Or should we break the project into several sections for discovery, design and implementation? Once we have decided on the structure of the project we then need to define the design artefacts that will be used for the construction of the migration process. With the design in place we move on to the build phase and so we need a pattern for how to build the migration processes. Finally for this element we need to define our testing strategy and decide how to support it within our design and implementation. The purpose of the testing will be to prove that we have not degraded the data quality of the migrated data, migrated all records correctly or if some have failed provide an audit trail showing why they have failed.

 

Technology

The technology element covers gaining a good understanding for the source and target systems. We must identify all the sources of data for the migration, these may not be evident at first from the client's requirements. Often as the discovery progresses we find that there are data that need to be pulled from other systems. We need to decide on the tools that we will use for the migration. Such as choosing between doing the migration manually using csv files, excel and the Salesforce data loader tool, or using an ETL package such as Talend with a staging database. Finally for the technology element we need to understand all the limitations of the source and target systems and our tools in relation to the data that we are migrating. We need to check that the source, target and tools can support the data volumes and timescales of our project. 

 

People

People are critical to the success of the data migration. We need to find the right people with the right skills for the project. We need to identify the Data Owner who will accept the result of the migration and the Data Subject Matter Expert who will help us to understand the data and its quality. We need to find the right project team members with expert level skills in the tools we are using and experience in migrating data into our target system. 

Summary

Data migrations can be very difficult, but if we remember the four key elements of data, methods, technology, and people we can mitigate a great deal of the risk and make our migrations successful.

Building a Virtual Consultancy

The COVID-19 pandemic has forced many organisations to embrace remote working. However for many of us in consulting working remotely is noth...