+1 (540) 566 5620

Quality Assurance… What is it and Why do I need it?

Read On
Quality Assurance

Quality Assurance… What is it and Why do I need it?

What is Quality Assurance?

Like saving money and delivering a sound product to your customer? Who wouldn’t!

Quality Assurance testing assists companies in fulfilling the expectations based on requirements provided by their customers to ensure that their products or services meet a certain level of quality. Yup, identify and fix any bugs or errors before the products or services are released to the customers.

Bugs in the Code

Quality Assurance testing methods focus on establishing good practices to produce products with the quality already built in, rather than going through an unmonitored production process and attempting to “inspect the quality” of the product that has already been provided to the customer. Taking a specialized approach in quality assurance testing focuses on monitoring each portion of the process prior, during and post implementation to effectively measure the performance or the application.

So how do you Quality Test, you ask?

Here are a few types of software testing that can fit the needs of your client:

  • Unit Testing – Unit tests are generally automated and can run very quickly by a continuous integration server. They focus on testing individual methods and functions of the components or modules used by your software.
  • Integration Testing – Integration tests verify that different modules or services used by your application work well together. For example, integration testing validates that the interaction between a database and integrated microservices work together as expected.
  • Regression Testing – Regression testing is a method of testing that is used to ensure that changes made to the software do not introduce new bugs or cause existing functionality to break.
  • Functional Requirement Testing – Functional tests focus on the business requirements of an application. This type of testing verifies the application feature works as expected, per the software requirement.

Now that we have covered the “What” it is, let’s talk about the “Why” you need it!

Want to keep your current customers happy? And not risk losing potential customers?  Considering how much time a company spends on the internet, it is more important now than ever to be sure that your websites and apps function properly. If your website is not functioning properly, you could risk losing both current and future customers. Delivering the best possible product that you can gives your clients a peace of mind that their software runs as smoothly as possible.

Benefits of a Quality System

  • Cost Savings! The longer a bug goes undetected, the more difficult and expensive it is to fix. Detecting a bug in-house during the software development phases, prior to your client or customer finding the bug builds confidence in the product quality.
  • Quality Assurance Brings Security – Given the growing trend of cyber security attacks, software quality assurance testing allows you to probe every phase of the development process and check for vulnerabilities, reducing the risk of any leaks in data that would cost you more than you expected.
  • Improved User Experience – A thoroughly tested software product ensures a better user experience and makes their navigation hassle-free.
  • Prevents Software Breakdowns – Given that you cannot predict errors while working, quality assurance software testing allows you to check your products performance under various loads, devices, and architectures to avoid unforeseen breakdowns. During the software development lifecycle your product will undergo functional and non-functional testing to ensure efficiency, productivity, and user experience are working as expected.


Hopefully, reading this article makes you feel more knowledgeable and empowered in understanding the importance of Quality Assurance Testing and how it benefits millions of companies across a vast variety of industries each day.

Get started today with your Quality Assurance Testing experts here at CMH Works!

You need to add a widget, row, or prebuilt layout before you’ll see anything here. 🙂
CyberSecurity Awareness Training - Don't get hacked!

Benefits of Cybersecurity Awareness Training

The Power of Cybersecurity Training: Safeguarding Your Digital Assets

In an increasingly interconnected world, where cyber threats loom large, threat actors are smarter than ever, and data breaches make headlines. To combat this threat, we must take proactive measures to protect our digital assets. Cybersecurity training, in general, plays a pivotal role in equipping us with the knowledge and skills necessary to defend against cyberattacks, and maintain a more secure digital environment.

In 2021, 98% of cyberattacks relied on social engineering. According to PurpleSec (2021)

Social Engineering is a category of cyber threats focused on humans and their social behaviors. Right now, Social Engineering is the most prevalent attack vector because it preys on the uneducated person’s “likely” behaviors. Hackers use these behaviors to gain access to your systems and assets. The key to combating these Social Engineering threats is to educate, and thereby change that behavior.

In this article, we explore the compelling benefits of Cybersecurity Awareness Training as a tool to combat Social Engineering threats, and how they can provide measurable value in securing your organization.

Heightened Awareness and Threat Recognition

Cybersecurity Awareness Training serves as a powerful tool to educate your organization about the various types of cyber threats and attack vectors that they are exposed to. By educating on the latest techniques used by hackers, your staff becomes more adept at recognizing potential threats. These threats include phishing emails, malware, or social engineering attempts. Recognizing these threats means faster detection and reporting of suspicious activities, mitigating the risk of successful cyberattacks.

Social Engineering Cyberattack Vectors

Exercising and Testing Knowledge

It’s critical to understand where your organization is in terms of Cybersecurity Awareness. Providing knowledge is the first step to increasing that awareness. But, exercising that knowledge is what really changes the behavior. The best way to exercise is through real world testing.

An effective CyberSecurity Awareness Training program includes the periodic testing of users with safe Social Engineering attacks, such as phishing emails, to record their actual behavior. Did the user click the link, or did the follow protocol and report it to the Security Team? Or did they at least delete it? Measuring the results of these exercises across your organization will give you the insights you need to continuously improve your stance against cyberattack.

Reducing Vulnerabilities and Improving Response

It’s not a matter of IF you will be hacked. It’s a matter of when. What is critical is how quickly and effectively you respond when it happens.

A well-trained workforce is a crucial line of defense against cyber threats. Cybersecurity Awareness Training equips your organization with the skills not only to identify the threats, but respond to them when they happen. And eventually, they will happen.

Another fundamental part of Cybersecurity Awareness is understanding the risks associated with the digital endpoints, a.k.a. the Desktops, Mobile Devices, Servers, and Online Services that are the foundations of your digital footprint. Understanding the importance of basic security fundamentals as password protection, timely patching, and regular backups is paramount. By exercising these fundamentals, your team contributes to a proactive security culture, and thereby reduce risk. Adopting automation tools and having dedicated resources to enforce behavior is the key.

Furthermore, training modules on incident response enable organizations to minimize the impact of an attack by swiftly containing and remedying the breach, mitigating potential financial and reputational damages.


Cybersecurity training is a pillar in safeguarding your organization against ever-evolving threats. By increasing awareness, strengthening defense strategies, and reducing vulnerabilities, organizations and individuals can significantly reduce the risks associated with cyberattacks. Investing in comprehensive cybersecurity training programs not only protects sensitive data, but also instills a “security-first” mindset among your staff. Remember, when it comes to cybersecurity, knowledge is power, and training is the key to unlocking it.

When it comes to cybersecurity, knowledge is power, and training is the key to unlocking it.

If you would like to discuss your current Cybersecurity posture, we are here to help. To get a no obligation consultation with a CMHWorks Cybersecurity expert, please feel free to reach us at  Take a look at some of the managed security solutions we offer here.

Additional Information

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


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.


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. 


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. 


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.


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.


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. 

Due on another dude's shoulders

The Five Cs for the Remote Workforce

75% of small to medium sized business owners say they’ll continue remote work options long term. Tech firm CMHWorks was already 100% remote before COVID. How did it work during the crisis? At CMHWorks we reviewed the impact of the changes in the business landscape and resoundingly agreed the following concepts were keys for us in 2020 and will continue to be in 2021.Here’s what we found.

The Five C’s of 2020

If you take away nothing else from 2020, here are five considerations we call the Five Cs we suggest every business consider in its 2020 strategy planning: 

  1. CultureHaving everyone engaged is critical. Think about all the employee issues managers deal with. Now consider dealing with those issues day-to-day with staff you don’t often (or ever) meet with in-person. Moreover, your company’s ability to instill or maintain the cultural vision, principles and behaviors when your staff is rarely, if ever, physically together in critical.
  2. ControlsAll policies, practices and procedures need to be reviewed and brought in line with the remote reality. Address these things now or address them in mediation later. 
  1. CostsCost control is critical. Give no one a blank check for equipment, software, subscription services, etc. Have your team devise best practices and how to implement well considered goals. 
  1. CustomersDon’t forget your clients/customers. Access to staff may be altered greatly. Clients accustomed to face-to-face dialog may balk at using video chat. Be understanding of their needs and explain the purpose of new measures. Stress relevant benefits such as drive time savings.  
  2. Cyber SecurityImplement stringent and appropriate cyber security protocols to protect your intellectual property. Your business’s assets and communications are at more risk than ever beforenot due to the pandemic, but due to internationals corporate espionage primarily at the hands of bad actors like China and Russia.  

Key Takeaways

Make no mistake, a remote workforce can produce significant challenges to the execution of day-to-day operations if not designed and managed correctly. Approach these challenges now, not when the company drives off the rails of common internet security practice. 

All of these are shared challenges. Your competition must deal with them as well. Therein you can also find opportunity. Protect your staff and assets. Value your customers. Be smart about communication technology and do business in the ways of tomorrow. One thing for sure. “we’ve always done it this way” should never be spoken in a company meeting ever again. 

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


    Or Book an Online Meeting now.