Author: Mike Harvey

Freemail is NOT secure.

The Freemail Pitfalls

In January’s newsletter, I covered the Four Pillars for any Business, and why selecting the right tools as the foundation of your business is critical to your success. In this installment of Mike’s Musings, I’d like to dive a little deeper into one of the common traps and why you should avoid it for your business - that is the use of Freemail.

When discussing the use of Freemail in business, we often hear comments like, “It’s free and it works, so why pay for something else?” Well, here are a few very good reasons to spend $6-7 a month.

Anything offered for free always has a catch

In any product or service offered, if you are not purchasing said product or service , you are the product.

All services have a cost. Companies offering the service must cover that cost. If you are not paying for the service, the company providing the service is leveraging you and the data you provide (along with all its other subscribers) to recoup the cost and make a tidy profit. How do they do it? The two most common ways companies turn your free use into cash through either advertising revenue, direct sales of your contact information, or both.

For personal use, okay. For business, notsomuch.

So you use Gmail, Yahoo, or Hotmail personally. You are familiar with the services. Why not use them for your business right? Wrong. Here’s why:

  1. While you may be fine with personal use data being farmed, you should assume you have next to zero data privacy. Communications and data about your business should never be exposed for the whole world to see. Doing so leaves your business vulnerable so hackers targeting your company with Social Engineering exploits like Spoofing, Phishing, Smishing and Vishing, with no ability to secure your data.
  2. Because you can’t expect any reasonable data privacy, you are potentially giving your competitors vital information about how to compete with you. Information you send to vendors and customers is valuable to your competitors. If you’re sending and receiving sensitive information with Freemail , you should expect it to be reasonably easy to get.
  3. Because you have no semblance of privacy, you are susceptible to the all-dreaded spam, spam, spam. I’m not sure if I know anyone that like’s spam. And because you are using a Freemail domain that you don’t own, there is nothing you can do to prevent it.
  4. You are missing out on the ability to brand your communications. If you have a website, you likely have a domain registered for your business. You registered the domain for branding and marketing purposes. You cannot use your domain with Freemail services. So, every email you send is a missed opportunity to reinforce your brand.

The Real Costs of Business Class Email

Business-class Email costs about $6-7 per month per mailbox. Sure, you can add on other features and services to suit your needs, but value of Business-class email alone is obvious. At CMHWorks, we offer not only the Email services at the same price you can buy it directly from the providers, but also the setup, support and maintenance because we believe it is fundamental for any business.

Tools and Phone

Essential Tools for Today’s Business

One of the most common challenges facing any business today is differentiating itself in the digital world. It is virtually impossible to compete today without a visible digital presence. This challenge applies to all businesses from start-ups to multi-national conglomerates alike. But unlike large companies that have the technical capacity to implement tools to market, support and secure their operations, smaller companies typically do not. This is especially true for small businesses who often do not have the resources or skills to build a solid technical foundation. The good news is that for most businesses large and small the foundation is basically the same. And regardless of your company's size, there are essential tools to build and grow your business today on a solid foundation.

Selecting the Essential Tools for Your Business can be frustrating

Four Pillars for Any Business

In addition to any specific tools used to deliver services, there are four (4) essential or foundational tools for all digital businesses today. These tools are equally important and should work in concert to serve as the foundation of your business:
  1. Website AND Social Media ‐ the website and social media make up the "visible" marketing aspect of a business's digital presence. While often handled as separate tools, they should be working together to continually increase your visibility.
  2. Collaboration ‐ typically starting with Email, Collaboration tools should also include calendaring/scheduling, file sharing, real-time chat, and audio/video conferencing that allow your team to work together and with your customers.
  3. Customer Relationship Management (CRM) ‐ CRMs primary functions are to proivde a framework to manage Marketing, Sales and Customer Service activities enabling the management of potential business "cradle to grave" from leads to sales to support of your products and services.
  4. Cybersecurity ‐ including User Training, Endpoint Protection, Monitoring and Mitigation, Cybersecurity tools provide digital security for all other tools and protects your company's digital assests from denial of service attacks, hacking and theft.

While there are likely other tools your company will need as it grows, the tools above will serve as the ecosystem to support them. And the sooner you build that foundation, the sooner you can get to the business of growing your business.

Avoid the Common Pitfalls

There are several pitfalls to avoid when selecting the tools that are the foundation of you businesses digital presence.
  • Don't Use "Freemail". ‐ Anything offered for free usually has a catch. Freemail services such as GMail, Outlook.com, Yahoo and the like the tradeoff is privacy which is a big payout for little savings. And you@gmail.com does not enhance your digital presence.
  • If you don't know, ask a professional. ‐ The old addage "Do what you do well and pay experts to do the rest&qout; especially applies to selecting your tools and making them work together. Get advice from people who know. Not all IT People have the same skills. Your nephew who is "really good on Social Media" maybe inexpensive, but is probably not qualified to build the foundation of your business.
  • Don't view the tools as individual solutions. ‐ All of your tools should work together to serve as a solid foundation. Make sure the tools you chose integrate, and integrate everthing you can.

Summary

Selecting the right tools is critical for your business, and you should take care in the choices of what tools to use so you house isn't built on sand. All tools are not created equal.

Stay tuned for future installments where we will be discussing each of the Essential Tools in more depth.

Application like Orphaned baby on the doorstep

The Reality of Orphaned Apps

Orphaned applications are unfortunately a fact of life. This is most especially true in the small business world. While it’s very easy to find an application developer to build you an application, it’s very hard to find one that can build the environment to support it and provide ongoing hosting and maintenance at a price you can afford.

The Application Performance Management Cycle

The disciplines of service architecture, continuous integration and delivery (CI/CD) are not native to most development shops. To the layperson, these are all tech buzzwords. These disciplines are unique areas of technical expertise reserved for larger IT departments and companies that have robust architecture, engineering, database, DevOps, and content delivery capabilities. Most importantly, they also do Application Performance Monitoring. These skills are not in any way in the skill set of your “classic development shop”.  Yes, you went to a podiatrist for a facelift.

 

Ordered a Ferrari.  Got a Pontiac.

So, what does this mean for small companies that have outsourced the development of their web app, mobile/native app, PWA, or software to classic development shops? It means often the project is completed, you pay for this solution, you get a salute from the vendor.  And when you need updates or want to integrate it with something else, you pay through the nose if they oblige you at all.  And you have no idea if it will be secure, perform well, or scale at all.

Ferrari and Pontiac are NOT Equal

Sound familiar?  You have an “orphaned app” of dubious quality and questionable performance “at scale” – and you just got started.  Well, you are not alone.

How Did This Happen?

The hard truth is the answer lies in your lack of expertise in cars and your lack of diligence in researching what you were buying.  The same holds true for custom development.  Most buyers don’t know what to ask for.  And even if you did know what to ask for, how would you verify the quality of the solution? The truth is you cannot, or you likely would have the expertise to build it yourself. 

Now let’s talk about performance.  The overall performance of your application depends on how the application is built, what infrastructure it runs on, how scalable the component architecture is, as well as how well the code is written.  When you buy an app from a development company that does not do architecture design and hosting as a core business, you are essentially buying code that is not been tested to scale.  The vendor will likely deploy your code to a single cloud server running everything including the database.  They will ask you to test is to make sure it does what you need it to do (the minimal requirement), provide enough fixes until you accept it, and send you a bill. 

The bottom line is you probably asked for “working code” and that’s all you got.

Building is Easy.  Maintenance Takes Commitment.

There are literally thousands of these “classic dev shops” promising to leverage their vast development resources to build your app “for a fraction of the cost”.  Why are there so many? There are so many classic dev shops because many countries have a glut of developers that have been churned out of school with basic skills that do this work for peanuts.  And the initial development of something is where the easy money is.  The quality of the work is likely not a success factor.  The objective is to minimally meet the requirements and get paid.  You want a warranty? Good luck with that.  You wouldn’t buy a car without a warranty.  Why would you buy a tech solution without one? But it happens all day every day.   

What does that mean for you? That means that eventually, if your business model is realistic and the use of your application grows, you will have performance issues, security issues, and maintenance issues.  It's not a question of if, it’s a question of when.

It’s All About the Foundation

Foundation Built on Sand

Many people use the old “house foundation” analogy.  But it is so true here I will risk it.  The environment hosting the thing you just paid for is the foundation of your solution.  Some questions you should ask:

  • What is my roadmap for the solution over the next 3-5 years?
  • Will the solution support the roadmap and all the users we anticipate?
  • Can it scale efficiently to support the user base (whatever that user base is) with no interruptions?
  • Who will maintain and monitor the ongoing performance of my solution?

If the answer to any of the questions is “no” or “I don’t know”, stop, and get some help from a solution provider, not just a “dev shop”.

How to Engage a Solution Provider

Ideally, you should make sure you have access to adequate expertise to scope and manage your investment.  You should understand that vendors are very good at presenting things that sound good initially, but don’t necessarily meet the needs in the long term.  Like everything, the technology space is a “buyer beware” world.  If you have a trusted and reputable vendor, it is much easier.  But it is always a “trust but verify” situation.   

Your best defense is a team of experts you trust with the experience and skills to help you ensure you get what you need.

The Minimum You Should Do

If you are thinking of hiring a vendor with unknown performance, you should do your diligence.  The level of diligence depends on many factors not least of which is cost.  But ideally, the diligence you do should be adequate to mitigate the risk.  Development is a service like any other.  And to protect your investment, you should consider some best practices when engaging anyone providing you any service:

  1. To protect your Intellectual Property, execute an NDA with the vendor prior to discussing your needs in any detail.
  2. Require 2-3 reputable and verifiable references and verify them before engaging the vendor.
  3. Have the contract reviewed by a contract attorney. At a minimum, this should include terms such as:
    1. warranty terms and guaranteed service levels,
    2. the deliverables be delivered to you, and not owned or managed by anyone else,
    3. and Independent Verification and Validation (IV&V) of the deliverables reviewed by a third party.

Honestly Assess Your Own Skills

Last and most importantly, you need to be honest about your capabilities.  If you own a business, you likely have one, if not several, areas of expertise.  If technology development or contract law are not in your wheelhouse, admit it and enlist the help of a professional with those skills.  You will be glad you did, and you won’t end up holding an orphaned app wondering how you got here. 

IT Security Primer for SMBs

How big of a deal is IT Security for SMBs?

No business is too small. Small and mid-sized businesses are the number one targeted segment of cybercrime. It’s not a question of if you will be attacked, it’s a question of when.​

SMB IT Security

​A PRIMER FOR SMALL AND MID-SIZED BUSINESSES

HackerU Cybersecurity

American University and Hacker U Select CMHWorks as a Hiring Partner

American University & HackerU has chosen CMHWorks as a recruitment partner to consider candidates who have completed their Cybersecurity Security Professional Program. With the threat of cyberattacks on the rise, the program recognizes how appealing an IT Professional with a Cybersecurity knowledge base can be to a company like CMHWorks.

Washington, DC – July, 12, 2021. Israel’s premier digital skill and cybersecurity institute, HackerU, has been partnering with educational institutes worldwide, currently in 12 countries. In 2019, HackerUSA, a subsidiary, has partnered with American University, based out of Washington, DC.

According to Bryan Gulcin, Business Relations Manager at HackerUSA in recent LinkedIn post,

“We are happy to collaborate with CMHWorks and add them to American University‘s and HackerU‘s growing list of hiring partners!”

Mike Harvey, founder and principal owner of CMHWorks, has more than 30 years of experience as a Technology and Operations executive with broad experience in enterprise technology strategy, development, implementation, and management. He founded CMHWorks, LLC in 2014 to provide Technology Services and Support to public and private sector clients.

Part 3: Why Customer Case Studies Pack The Most Marketing Punch

Out-of-the-box Case Studies

Go outside the format box

The traditional case study format with four subsections isn’t written in stone. Shaking things up can grab a prospect’s attention and provide a bit of entertainment along with education about your product.  

  • Make it eye-pleasing. I’ve seen a case study that placed just Problem and Outcome side by side at the top of the page. I have to say it looked less like an ugly homework assignment than those case studies with long bullet lists at the beginning.  
  • Slideshares can present key info in an inviting format that’s quick to go through for prospects with little time to spend reading. And who can resist clicking those arrows?  
  • Infographics are great for presenting key numbers and stats you’d like to boast about.  
  • Video case studies are an increasingly popular alternative to long-form text case studies. One study found that 72% of consumers prefer video messages over text. Consider the power of marketing content that combines their preferred media (video) with their preferred message (real customer review). A three-to-five-minute video featuring a customer can give a prospect a personable introduction to the brand that’s hard to achieve in text — and it can be less time consuming for fickle searchers at the beginning of the sales funnel.  
  • Some of the best case studies combine text, video, images, etc. on the same page, immersing prospects in a multimedia experience of the product and customer.  

Use visuals — and not just pie graphs

Photographs, pictures, vivid colors, animations and video — especially video — can all help bring your customer story to life.  

  • If your numbers — for increased sales, growth, etc. — are impressive, consider placing them at the top of the page, enlarged and in color.  
  • Visual elements are especially useful if your case study text content is limited. A large photo with some punchy text and blown-up statistics or percentages can make an impact on prospects.  
  • Dramatic before and after pictures that demonstrate a product’s effectiveness can be compelling. If you can get your client to collaborate, you can also make a photo story following the company from initial adoption to results.

Use a different variant of the case study for each part of the sales funnel

Show B2B buyers at the beginning of the sales funnel case studies in the form of infographics and video (actually, video’s a great converter at any stage); show those at the middle of the funnel articles, interactive content, webinars; and give those at the end longer case studies that emphasize ROI. 

 This is especially important for companies with dense or difficult material in their case studies. Technology companies, for instance, might do well offering a light video testimonial as an introduction rather than a long text filled with technical terms. 

 Make a sidebar for long text-based customer stories that gives an overview of the story with important data. Use color or images to make it stand out and attract the eye. Those without time to read the full can read the sidebar to get the gist of the problems and outcomes. 

 Combining text, video, infographic and slide share on the same page offers a version of the case study for every kind of prospect in one place.

 Repurpose case study material  

The material in one case study can be spread and repurposes all over your online sites. Not only can you can publish the case study on your company website, Medium, LinkedIn, Facebook, etc. You can also place glowing customer quotes on product pages and near CTAs, tweet them out and post them on Facebook (and use them in FB ads) and LinkedIn. Passages can be used in emails, presentations and eBooks. They can be used in white papers to make them less dull. They can be referred to in subsequent blog articles on your site.  

The cross-promotional potential of case studies presents a particularly interesting opportunity for exposure. Request that case-study participants — which may be just the person interviewed or every person in the company, depending on how you look at it — to pose the story on their social channels. That will instantly put your brand in front of all of their combined social followers. After all, you are giving them exposure to your audience by posting it on all of your pages, so they probably won’t mind reciprocating.  

Case closed  

True customer accounts are what customers want to see when they have a buying decision to make. They are also the kind of high-quality original content that search engines reward with high rankings. A great case study combines so many high-power marketing elements in one package — real reviews, unique material, authentic quotes, data and stats, a relatable story, etc. They answer your customers’ pressing questions about how your product or service performs in real life in an enjoyable format. Competitors publishing rehashed mush from around the web or tooting their own horn with overused buzzwords won’t be able to compete with that.  

Contact CMHWorks today to find out how we can help you reach your marketing, content and social goals.

Sources: 

https://blog.hubspot.com/marketing/state-of-video-marketing-new-data 

Part 2: Why Customer Case Studies Pack The Most Marketing Punch

Part 2: Why Customer Case Studies Pack The Most Marketing Punch

Part Two: How to Awesome Case Studies

Posted in Articles Mar 23 5 min read Digital Marketing, Case Studies
Part 2: Why Customer Case Studies Pack The Most Marketing Punch

How to Inject Some Awesome in Your Case Studies 

Write like a journalist

Or hire one. Eighty-four percent of B2B marketers outsource content creation. When it comes to case studies, look for a writer with journalism experience. Most case studies begin with an interview of the customer. Having a third party do this can help loosen up the customer and get honest opinions from them. Someone outside the company will also be more likely to ask the kinds of questions a random read would ask. The interview can be done over a video call and in emails to follow up. A journalistic writer’s interviewing skills will be useful for drawing solid, real-life examples and great quotes from your customers. And their narrative-crafting skills will likely be better honed than those of a typical copywriter.

A good example of how much more attractive article-like content can be compared to marketing copy comes from Microsoft. It first pitched the story of its project to turn its-500-acre headquarters into a smart campus to journalists, but they declined. So, it wrote the story, titled 88 Acres: How Microsoft Quietly Built the City of the Future, itself. Within two days of publishing it, 800,000 people had read it.

To give your case study a journalistic look and tone:

  • Compare a press release and editorial article side by side, and make sure your case study reads more like the later.
  • Use your writer’s byline on the piece and mention that they work/have worked as a journalist. This can boost the reader’s trust that content provides an objective outlook.
  • Don’t bury the lead. Include an introductory paragraph that gives the reader the main points of the piece upfront.
  • Use a strong title that conveys the most interesting thing about the case study. Include strong data, like “customer increased sales by 80% in first six months.”

Tell a story in which your target customers/readers can see themselves 

First, think about which segment of your target customers you are trying to reach with the case study. Then, determine which of your customers most closely resembles that demographic — that’s you want to write your case study around. The more the reader can see themselves in the subject’s shoes, the more strongly the case study will grab and impact them.

Convey your knowledge of the subject’s industry by writing about it intelligently and in detail. Go deep into the common pain points those in the industry face. Fill the case study with material the target reader can relate to, scenarios in which they can see themselves. When the reader reads material about their own industry, they will “click” and identify with your brand.

Say you sell a suite of recruiting software tools, and you’re going after young companies that need talent but can’t afford full-time recruiters. Select a subject that fits into that demographic, and get him/her to talk about the day-to-day realities of trying to balance recruiting with all the other duties of a startup, the need for software to cut the leg work out for them, the prohibitive cost of headhunters, how well the solution worked, how perfect the new hire is for the company, etc. The more detail, the better.

Content that’s presented as a story can increase audience engagement by 5x. To make all the stages of the subject’s journey vivid, and help your reader fully relate:

  • Remember your reader is currently in the midst of making an important, potentially high-cost decision and play to that. Highlight the indecision and confusion your subject faced when trying to make a choice. Playing to the emotions the reader is feeling in the current moment will have a powerful effect on them and help them identify with the subject.
  • Take the reader all through the rollercoaster of the subject’s journey in a dramatic story with suspense, surprises, and finally relief and success. Give a lot of attention to the pain points they experienced and the ill effects their lack of a solution had on them and their company.
  • It’s important to detail the shopping process they went through before coming to your products. Your reader may be considering those very competitors at the moment. Have the subject name the other brands they investigated or tried and why they ultimately chose yours.
  • Detail all the benefits the subject realized from using your product or service. How did their choice result in increased revenue, efficiency, happier customers, employees with more time to work on other tasks, a work day that goes by easier, etc.
  • Remember to ask your subject to be honest about any weak spots or things they wish your product did better. Your case study should cast your product in a positive light overall, but allowing a small dent to show gets honesty points and raises the reader’s trust level.
  • Quotations are among the most powerful, persuasive case-study elements. Try to get memorable, revealing, true-to-life quotes about your interviewee’s experience. Use them throughout the text. Enlarge them, set them off, or use color or graphics to make them stand out.

Note: Some companies do not want to reveal who their clients are publicly. They can use descriptors, like “a medium-sized hotel in the Middle Atlantic” instead of the actual name. 

Sources: 

https://www.microsoft.com/en-us/stories/88acres/88-acres-how-microsoft-quietly-built-the-city-of-the-future-chapter-1.aspx 

https://www.autogrow.co/how-to-increase-sales-funnel-engagement/ 

Part 1: Why Customer Case Studies Pack The Most Marketing Punch

Part One: Why Case Studies

Why Should I write a Case Study?

Over 90 percent of companies are  using content for marketing and growth. But when you look at what they’re actually producing, it’s pretty clear that few are   pushing the envelope. Most of the content they put out  doesn’t stand out or  work for them like it ought to. The internet provides cheap or free space on which to broadcast their message. And there are tons of creative resources and tools available for crafting practically any kind of material they can imagine. You’d think this would fuel an outpouring of novel brand content that doesn’t cleave to tired old formulas. Yet most companies are coming up short. Case studies are a prime example of this. I believe real-life customer stories might be the most underutilized tool in the modern marketing scene.

Data from surveys of B2B marketers and buyers says it all. One study from Content Marketing Institute asked B2B marketers what types of content they were using.  

The top five types were:  

  1. Social media content (tweets, stories,etc.); 
  2. Blog posts/short articles; 
  3. email newsletters; 
  4. in-person events; 
  5. videos (excluding live streaming). 

Case studies came in at a humble number six. It’s not that the top five aren’t good; they have their place; they can be great. But what could be of more interest to prospects than what your product actually did for a customer just like them? Straight from the horse’s mouth? Would they perhaps prefer more “enterprise grade,” “scalable,” “next gen,” “solutionized” about us blather?  

Your prospects want to hear about their issues, their problems, their wants. A good way to deliver is through an account of someone who has stood in their shoes. A number of surveys have shown that at the middle and late stages of the sales funnel, nothing converts better than customer case studies. According to one such study, 73% of B2B marketers named case studies as the best content for accelerating leads in the mid and late stages. The same study found that 73% of B2B marketers said case studies accelerate leads at the mid and late stage.  

This shouldn’t surprise anyone who shops online and knows how they react to customer quotes versus company copy. Product reviews are 12x more trusted than product descriptions when consumers are trying to make a buying decision.  

Case studies that read like articles are also good for organic search rankings Seventy-two percent of buyers begin their research with Googlewhich has updated its algorithms in recent years to reward quality content. This means original research or analysis, new information and overall good writing are favored over rehashes, keyword stuffing and low-grade content-mill type stuff. Case studies tick a lot of the right boxes for quality, search rankings and buyer traffic. They present totally unique content and straight-from-the-source info that you and only you can produce. Competitors can’t copy them, and that makes them just about the most valuable content pieces possible. This is good news because it’s pretty tough for small to medium sized companies to outrank Wikipedia on basic, universal topics.  

That said, the fact is that a lot of marketers produce case studies that are not as good as they could be. It’s an area where I’d like to see better storytelling, multimedia innovation, creativity, authenticity, person profiling, entertainment, etc.  

In the rest of this article, we’ll look at the basic outline of a customer case study. Then, we’ll look at some ways to make a case study better than basic — a highly charged power tool for winning over buyers at all parts of the customer journey.  

What Is a case study?  

A case study is any type of content that details a particular customer’s experience with a product or service. A typical case study comprises the following four sections:  

  • Client: The opening section provides an overview of the client and its basic stats, like size, market position, and any unique or significant facts about it.
  • Challenges/objectives: The second section details the specific challenges that led the customer to seek out a solution. It may also be that it was not a pressing problem, but rather a desired goal which sent it in search of assistance.
  • Solution: The all-important third part tells all about how the client solved the problem with your product or service. Naming the companies it previously looked into before deciding on your own is usually a good idea. Dramatic anecdotes about how individual parts of the problem were solved also make a strong impression on readers. 
  • Outcomes: The fourth and final part states the ultimate outcomes. Data, impressive numbers, dramatic before-and-afters and customer quotes make for strong endings to case studies.  

That’s the template for a standard case study. How you tweak it, add to it, improve on it, or amplify certain sections, though, can take your case study beyond standard, make it stand out and speed customers through the sales funnel. 

Sources: 

https://contentmarketinginstitute.com/wp-content/uploads/2019/10/2020_B2B_Research_Final.pdf 

https://www.orateproject.com/text 

http://e61c88871f1fbaa6388d-c1e3bb10b0333d7ff7aa972d61f8c669.r29.cf1.rackcdn.com/DGR_DG072_SURV_BenchmarkSurvey_Jan_2018_Final.pdf 

https://econsultancy.com/blog/9366-ecommerce-consumer-reviews-why-you-need-them-and-how-to-use-them#i.35yv7v2okfp7yq 

http://www.pardot.com/buyer-journey/#consideration 

Domain Driven Design: Your Whole Dev Team Speaking the Same Language

Use domain driven design to maintain software code that mirrors the actual domain to which it refers. This ensures that all stakeholders speak the same language from the start of the project to final deployment.

In the prehistoric days of software development, product managers would hand a stack of documents to developers who would then disappear for two or three months. When they returned with the product, everyone would hold their breath and inspect it to see if it met expectations. If it didn’t, a lot of wasted time, money and costly rework were the result. 

Why would businesses make such risky bets on developers? In short, because they don’t know jack about code. But thankfully, there are now more inclusive development paradigms to prevent such debacles. Without a doubt, one of the best is domain driven design (DDD). This is because it puts the client’s business at the center of development right from the very beginning — nay, even before the technical start of development, before a single line of code is written. This results in total clarity regarding the business as represented in the software, including all its parts, their relationships and, more crucially, their terminology. The scope of all of those things as a whole is what is meant by the term “domain” in domain driven design.  

Not all software developers use domain-driven, plain-language methods. This may be because they don’t want to do the upfront work it takes to understand the client’s business, or they simply lack training in the method. Some may even engage in a practice whereby they write difficult-to-decipher code so that the client will be less able to transfer it to another company to run for them, i.e., “security by obscurity.”  

Clients would do well to learn the basics of domain driven design to ensure that the developers they hire adhere to its most important tenants at the least. It is the technique most favorable to clients since it reduces cost, rework, time to debug and also enables agile iteration, which is key to staying competitive in today’s digital business landscape where up-to-date software is an increasingly important part of your offering. But most importantly, it allows to business to ensure its domain-specific requirements are reflected in a understandable and sustainable way 

What’s in a Domain?

Domain driven design (a form of behavior driven development) maintains that software code should mirror the actual domain to which it refers. This means both the structure and language of code — class names, class variables, class methods, etc. — should match the real-life domain as closely as possible.

Domain

The domain is usually a particular business domain, but it can be any sphere of knowledge, objects, activity, etc. In other words, it’s all the parts that make up the thing for which the software is being developed, taken as a whole. It might be a company, with its inventory, employees, customers, activities, etc. It may be any number of other things, for example, an educational course with its teacher, students, required texts, tests, so forth. DDD takes such real-life contexts and their contents and renders them in the form of a software program.

Key Concepts in DDD Include:

DomainThe main sphere of knowledge, activity, etc. for which the software is being created.  

Ubiquitous LanguageA language that describes all domain elements, activities, methods, etc., strictly adhered to by all parties to the software project to understand, plan, build and discuss the software and its behavior.  

ModelA system of abstract descriptions of certain domain aspects that can be used to solve domain problems. 

ContextA particular setting within the domain that determines how a term or group of terms appearing in it are to be interpreted. A single context extends just as far as a single model can extend without compromising its conceptual integrity.  

Context MappingLarge software projects often give rise to multiple distinct models and contexts. It’s important to keep them separated to avoid confusion, miscommunication and bugs. Bounded Contexts explicitly define the areas where a particular context takes effect, or a particular model is to be applied. They may conscribe, for example, the “Sales” model in one bounded area and the “Support” model in another.  
 
Mapping bounded contexts visually is quite helpful for teams. It can solve the tug-of-war between single terms in DDD’s ubiquitous language. In the above example, the term “Customer” may be used in both contexts but have somewhat different meanings and functions within each. Bounded contexts ensure that everyone understands what “Customer” refers to in the Sales context versus the Support context.

DDD Workflow

In English, Please 

 Plain, human-readable language is at the core of DDD and is what makes it superior to other development methodologies in many people’s minds, and particularly from a business client’s standpoint. It opens channels of communication between teams, enables the business to understand and agilely, iteratively, direct the design of software as it is being built, and it prevents a situation where the business can’t transfer the code due to obscurity.  

DDD developers need to become adept in best practices around naming conventions. They include:

  • Choose easily readable identifier names 
  • Keep code as brief as possible, but, ultimately, favor readability over brevity
  • Don’t use abbreviations or contractions in identifier names
  • Don’t use acronyms that are not well known, and even if they are, only when necessary 

The purpose of these principles is to write more human readable code and prevent the need for familiarity to quickly understand what is going on in a given code block or specific line. Below is an example of code taken from bad to better to best with DDD best practices: 

var wo = GetSomethingFromAService(); //  

(Requires context outside of line to understand "wo.") 

var workOrder = GetSomethingFromAService(); //  

(We know this is a work order, but is it an entity or model?) 

var workOrderEntity = GetSomethingFromAService(); //

 

(We now know this is an entity work order, not a model work order.) 

Identifier names can get as long and detailed as needed in order to tell a technical or non-technical reader what the purpose of the code is.

Call it what it is — but only once everyone agrees on what to call it  

I’ve worked with some otherwise great developers who’d absorbed some technical knowledge about DDD, rolled up their sleeves, and said, “I’ll just name everything exactly what it is.” At which point, I’d swivel their chair away from their computer screen and interject, “Not so fast.”  

You see, the most critical part of DDD begins before a line of code is ever written. That’s because computer programs do not like ambiguity and rarely miss a chance to make it known. Therefore, there can be zero ambiguity in the naming of elements in a domain. Everyone on the team or teams — on both the business and the development sides, whether they total five, fifty, or a hundred and fifty people — must reach complete agreement on what all domain terms mean.  

Developers may think it’s safe to make assumptions about the naming of some elements.  

For example, a developer might contest, “Well, this right here is obviously a widget, so there’s no point asking the product owner if everyone at the business agrees that it’s a widget. It’s self-evident.”  

The correct response to this common line of thought is: Obvious to whom? Self-evident to whom? The truth is that lack of agreement on what domain objects are named is common even when team members least suspect it. And even small assumptions can lead to big bugs, inaccuracies and breakdowns in a finished software program.  

It’s important to understand DDD not as just a technical method for programming, but a pathway for frictionless communication between software developers and their clients.  

“Domain driven design is really a solution to the knowledge gap between the people who are building software and the people who are asking the engineers to build the software for them,” said Robert Lara, software engineer at CMHWorks. And it had better be the developers bending over backwards to understand and adopt their paying clients’ preferred terminology — not the other way around. It may be true that every company is becoming a software company, but that doesn’t mean it is feasible for business people to learn coding. Ideally, developers will increasingly adopt the language of the business and embed it into the software, so it’s easily understood by technical and nontechnical people alike. That’s a task that DDD is tailor made for, and it begins with an effort to build a glossary of terms the business prefers to describe the domain.

U-N-A-M-B-I-G-U-O-U-S

Here are some guidelines and tools to make the initial baselining of domain language as brisk and easy as possible.  

Give the Business the First and Last Say 

The business should be the authority in naming the domain elements. This prevents time-consuming disagreements and confusion. The first step is to have them set forth all the domain terms they know. These can eventually be placed within bounded contexts and mapped out through the larger domain model. If a new term comes up, place it in its proper place in the domain.  

Build a Glossary 

Maintaining a complete glossary of domain terms will serve both developers and clients very well for as long as they work together. Organize it alphabetically, by context, business segment, team and any other rubric that may help you reduce search time and be more efficient. And remember to keep it updated.  

Visual Paradigm’s Glossary Grid is one very good tool. You can also make a glossary in a program you probably already have like Microsoft Word, Excel or Google Docs.  

CMH has one particular client with a very obscure business model. Its domain contains a lot of acronyms, various unusual types of procedures, purchases, purchase orders, products, etc. We just onboarded several new developers who would have faced a very steep learning curve in decoding all that language if not for the glossary we documented for the project. They all read through it, and we have not had a single instance of confusion when talking about user stories, etc.  

Put Domain Terms Where All Eyes Can See 

Make the glossary openly viewable to all project participants on both the development and business side. Applications like Microsoft Teams, Slack and Basecamp have features for group collaboration and posting. Get everyone to personally sign off on the definitions of all terms.  

The Payoff 

With all terms unambiguously defined, known and easily searchable if needed, everything about development just runs smoother. Talks about user stories have fewer hiccups; developers, business people, QA managers and even customer service representatives can all fluidly exchange ideas, note issues and agree to changes amongst each other. Unambiguous language at the code level helps teams write better tests that are less likely to fail what should pass or vice versa. Debugging has less guesswork, searching, asking, waiting for answers, etc. When a rep says, for example, users keep complaining about a character limit in the search field, the developer knows exactly what the rep is talking about. The developer will be able to find it right away — perhaps the precise code lines to fix are even named “search field” and “character limit.” How easy is that?  

To illustrate the difference made by code based on unambiguous language, we’ll take a particular CMH client as an example. The client asked us to redesign an internal application — we’ll call it version 4 — to replace an old one we’ll call version 3.  

“When it came to calculating figures, there were calculations all over the system. And if there was ever something that wasn’t calculated properly, you didn’t really know where the calculation was; you didn’t know what it was called; you didn’t even know which programming language that calculation would be calculated in,” Lara said. “And that caused havoc in trying to fix bugs.” 

Changing just two or three lines of code may have required an engineer to investigate three different system parts, decipher three distinct code languages and fix the problem in multiple different locations.  

Since CMH redesigned the application with a DDD foundation and framework, calculations in the system are easy to locate. There is no longer any “hunting” through the code for where they may be hiding, because it’s literally spelled out. And debugging is much easier and much cheaper. “The client has responded that the turnover for bugs is drastically faster with the new app,” Lara said.  

There is enough additional technical material about DDD to fill a couple of fat books. Eric Evans’ seminal Domain Driven Design is one obvious recommendation. Just remember that without a ubiquitous language that is unambiguous and unanimously agreed upon, none of that other stuff amounts to a hill of beans. 

To be clear, DDD is not appropriate for all Software Development projects and should be reserved for complex or esoteric domains to clearly represent the language, terms, events, and controls necessary to deliver a clear and concise domain model. Why? Because simple projects with simple or standard domains don’t necessarily need to incur the extra cost. These are the kinds of decisions that can make or break a project and what separate real developers from hobbyists. Now as an educated consumer of software, you know what to ask. 

The development experts at CMHWorks would love to talk with you about executing your next software project. Get in touch with us today if you want it built right the first time and maintained the right way all the time. 

Cyber Security in an Increasingly Digital Workforce

On December 14, 2020 the NY Times published the article Russian Hackers Broke Into Federal Agencies, U.S. Officials Suspect.

The breach of the software, known as SolarWinds, was so alarming that an order went out directing confirmation the software was no longer in use, by Monday. Yes, Monday. 

The U.S. Government is a gigantic bureaucracy. Time is measured in years or decades. Demanding anything be done in under a week is itself unprecedented. 

It took place during COVID. Another thing going on during COVID was unparalleled use of the internet for working remotely. As millions of workers, government and otherwise logged in each morning to collaborate remotely, the Russians were turned in. Oh, and the Chinese (CCP) were too.  

A September 2020, NYTimes report, China-Backed Hackers Broke Into 100 Firms and Agencies, U.S. Says reported “a group of hackers associated with China’s main intelligence service had infiltrated more than 100 companies and organizations around the world to steal intelligence, hijack their networks and extort their victims.” 

This is massively disconcerting to any U.S. business working online. The threat is particularly grave for tech companies. Russia and China have been stealing U.S. technology for decades. A quick comparison of airplanes manufactured by either country illustrates how much these two superpowers like to copy American ideas and hardware. 

If you have remote work sites, you are at greater risk than you if all your computer infrastructure is in-house. We recommend steps to help mitigate the threat while you figure out long term fixes.  

At a minimum, run your network thorough a VPN service. It gives you encrypted connectivity to the and prevents easy identification of your physical location when online. Be ever more wary of unexpected or hard to identify communications.  

Until organizations can install the hardware needed for more secure remote workplaces (often homes), the organizational culture needs to be one of caution at a level above what was commonplace when staff was on under the company’s roof.   

Contact Us




    This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

    For more information on our products and services, please fill out the form or contact us by phone or email and we'll get back to you shortly.

    Phone: +1 540 566 5620

    Email: info@cmhworks.com

    Or Book an Online Meeting now.