5 exercises — project delays, SLA breaches, cancellations, apologies, and deprecation notices: how to communicate difficult information with precision and professionalism.
0 / 21 completed
1 / 21
A feature release is delayed by two weeks due to a discovered security vulnerability. Which email to stakeholders delivers this bad news most professionally?
Project delay notifications: state the new timeline first, explain the cause precisely, confirm mitigation, and reassure about broader impact.
The "bad news sandwich" framework for delay emails: ① New timeline (upfront) — stakeholders need a new date immediately. Starting with "I have bad news" creates anxiety without information. Leading with "[release] → [new date]" is direct, respectful, and informative. ② Cause — specific, technical, non-apologetic — "CSRF vulnerability in the token refresh flow" is vastly more confidence-inspiring than "a bug was found". Specific language signals competence. Vague language like "security issues" raises more questions and often triggers follow-up uncertainty. ③ "Fix in progress + updated plan" — demonstrates you're not just reporting a problem but managing a solution. Stakeholders want to know the team is in control. ④ "Q4 roadmap milestone" — the question stakeholders most care about is whether this delay cascades. Addressing it proactively prevents the follow-up "what does this mean for Q4?" ⑤ Concrete next update date + channel — reduces the number of "any update?" messages you receive.
What to avoid in delay notifications: ❌ Apologising before giving information (delays the useful content) ❌ "We don't know" without adding what you're doing to find out ❌ Vague causes ("some problems", "technical issues") ❌ Passive ownership ("a delay was discovered") — take clear ownership of the situation
2 / 21
A client's SLA requires 99.9% monthly uptime. This month an incident caused 6 hours of downtime — breaching the SLA. Which email to the client most effectively handles this breach?
SLA breach communications: specific numbers, root cause, remediation, and automatic service credit commitment — do all four without waiting to be asked.
An SLA breach email is both a legal communication and a trust repair opportunity. How you handle the breach matters as much as the breach itself for client retention.
Analysis of Option B: ① Exact times and duration — "6 hours 14 minutes" — your commitment to precision signals operational maturity. "About 6 hours" signals ambiguity or rounding that clients notice. ② SLA deficit quantified — "99.14% vs 99.9% (0.76% deficit)" — the client already has this calculation in their SLA terms; doing it for them shows respect and prevents any suggestion you're minimising the breach. ③ Root cause named specifically — "[specific cause]" in the template — whatever the real cause, name it exactly. "Technical issues" destroys trust in SLA breach communications. ④ Post-mortem attached — proactively sharing the post-mortem is one of the most trust-building actions you can take. Clients rarely expect to see it; receiving it signals transparency. ⑤ Service credit committed proactively — "as per our SLA terms, a credit will be applied" — don't wait for the client to claim it. Doing it proactively signals you're honouring the contract, not trying to avoid it.
Option C ("unfortunately unavoidable") is the most damaging phrasing. Any failure can technically be prevented with enough investment; "unavoidable" signals you're not taking responsibility.
3 / 21
You need to tell a team that a feature they've been building for 6 weeks has been cancelled by the VP due to a strategic pivot. Which email most effectively delivers this scope cancellation?
Project cancellation emails to the team: be direct, give the real reason, acknowledge the work's value, identify reuse opportunities, give a near-term action, invite questions.
Project cancellation is one of the hardest communications in engineering management. The failure modes are: • Under-communication — rumours fill the vacuum and are usually worse than reality • Euphemism — "strategic pivot", "pausing", "de-scoping" without acknowledging the real impact on the team's work • Deflection — "VP decision" without context feels like the manager is hiding behind authority
Why Option B works: ① "I want to share some difficult news and give you the full context" — framing tells the reader this will be direct and complete. Reduces the anxiety of an opaque message. ② "I want to be direct about what this means" — most cancellation emails hedge: "some of the work may not ship in its original form". Option B says "the work will not ship in its current form." Direct honesty, while harder to write, is far more respectful. ③ Names specific reusable components — "feature flag framework + A/B testing pipeline" — this is the work of a good manager: finding the real value in cancelled work and connecting it to the future. It signals: your work mattered. ④ "Meeting this week to discuss reallocation" — the team's immediate anxiety is "what happens to us now?" This gives that answer proactively. ⑤ "Ask me anything… what I know and what I'm still finding out" — distinguishes between settled and unsettled information, which is an advanced and rare kind of managerial honesty.
4 / 21
Your team missed a key deliverable that was committed to a partner company. The failure was caused by an underestimation of technical complexity. Which email best structures a professional apology to an external partner?
Professional apology emails: name the specific failure, own the cause precisely, state the remedy, deliver the thing you promised, ask about impact.
A professional apology has a specific structure that distinguishes it from a social apology. The key is that it's information-dense and action-oriented, not just sentiment-dense.
Anatomy of Option B: ① Specific factual statement of what happened — "missed delivery of the data export API integration, committed [date], delivered [date] — 9 days late." No hedging, no "some delay" — exact numbers. The partner knows exactly what you're apologising for. ② "I apologise directly" — not "please accept our apologies" (passive), not "we are sorry for any inconvenience" (generic). "I apologise" is direct, first-person, human. ③ Causal explanation (specific and honest) — "underestimation of OAuth scope mapping complexity, which we should have identified earlier." Includes the self-assessment: "we should have identified this earlier" — owned, not blamed on external factors. ④ Specific process change implemented — "technical spike for all cross-system authentication work going forward" — this is the difference between an apology and a commitment. It answers "how do we know this won't happen again?" ⑤ Delivers the actual thing — "the deliverable is now complete + handover document + test report" — the apology is incomplete without the deliverable. ⑥ "Anything the delay has impacted?" — opens the door for the partner to identify cascade impacts you may not be aware of. Taking responsibility includes listening for downstream effects.
Option D is the most common failure pattern: emotionally sincere but informationally empty. "We take our commitments seriously" + "We will strive to do better" is a template that everyone recognises as saying nothing.
5 / 21
A popular feature is being removed from the product due to low usage and high maintenance cost. Which external communication (blog post / email to users) handles this deprecation notice most professionally?
Deprecation notices: name the exact feature and endpoint, give a minimum 90-day window, explain the reason honestly, point to the replacement, and provide an individual escalation path for edge cases.
Deprecation communications are a trust test. Engineers who rely on your API have built real systems on top of it. How you communicate changes affects whether they trust you with new APIs in the future.
Why Option B is the professional standard: ① Exact feature name and endpoint — "/api/v1/export/csv" — anyone with a dependency on this endpoint will find it immediately in code search. "Legacy export feature" is not findable. ② 90-day window — industry standard minimum for API deprecations. Shorter windows are disrespectful; longer windows (120-180 days) are better for complex integrations. ③ Honest reason — "fewer than 2% of accounts" and "maintenance cost has grown" — this is honest and specific. Compare to Option C ("operational necessities beyond our control") which is corporate non-language that erodes trust. Users deserve the real reason. ④ Replacement pointed to with specific benefits — incremental exports, schema customisation, warehouse integration — this makes the migration feel like an upgrade, not just a removal. ⑤ Migration guide link — reduces the effort cost for affected users ⑥ Individual escalation path — "if migration isn't feasible, contact [support]" — this is critical. Some users have edge cases (legacy integrations, compliance hold periods) where they genuinely cannot migrate. This clause shows you've thought about them.
Vocabulary for deprecation/removal notices: deprecating → discontinuing/retiring (more understandable to non-technical readers) sunset — acceptable but increasingly clichéd end-of-life (EOL) — standard in B2B/enterprise migration window — the period between announcement and removal
6 / 21
Sarah is reviewing a colleague's pull request for a new API endpoint. The code includes a potential race condition that could lead to data corruption under heavy load. Mark's comment reads: 'This looks good!'. Which of the following responses would best convey Sarah's concerns professionally, acknowledging Mark's initial assessment while highlighting the issue?
The correct response acknowledges Mark's positive initial assessment (showing respect) but immediately introduces the critical concern – the race condition. Option 2 politely pushes for clarification without dismissing Mark's effort and frames the discussion as a collaborative process. The other options either lack urgency or offer overly simplistic solutions, potentially minimizing the severity of the issue. It's important to balance positive feedback with constructive criticism when providing code review comments.
7 / 21
You're a senior backend engineer and receive the following Slack message from a junior developer, Alex:
Alex: 'Just finished implementing the new user authentication flow. Looks good!'
You know that initial testing revealed a significant performance bottleneck – the API call to verify tokens is incredibly slow under load, potentially impacting all users.
Which of the following responses should you send to Alex to professionally address this issue while acknowledging his work?
The correct answer (option 2) is the most professional and constructive response. It acknowledges Alex's accomplishment while immediately raising a critical concern and suggesting a practical next step – testing for optimization. Options A and D are dismissive and don't address the technical problem. Option B, while slightly better, doesn't clearly communicate the severity of the issue; it leaves room for misinterpretation.
8 / 21
You're a DevOps engineer and receive the following Slack message from a developer after deploying a new version of an application:
David: 'Deployment successful! All tests passed.'
You've just noticed that CPU usage on the production server has spiked dramatically, coinciding with the deployment. Monitoring tools indicate a potential memory leak within the newly deployed code.
Which response would best address this situation professionally while acknowledging David's report?
The correct answer focuses on acknowledging David's positive report while immediately raising a critical concern. Option A is dismissive and unprofessional; option B delays addressing the problem and offers no action. Option C directly addresses the issue with a clear request for investigation, demonstrating proactive monitoring. Option D is vague and doesn't take any responsibility or offer support – it's crucial to escalate issues quickly in production environments.
9 / 21
You are a technical lead reviewing a pull request submitted by a junior developer. The PR introduces a new caching layer for frequently accessed data. During testing, you've observed that the cache is aggressively evicting items, leading to increased database load and performance degradation. The developer's comment on the PR reads: 'This should improve response times!' Which of the following responses would best address this issue professionally while acknowledging the developer's intention?
The key here is acknowledging the developer's positive intention while gently pointing out the negative outcome. Option 2 does this effectively by validating their effort and offering support without directly criticizing their approach. Options A & B are too blunt and don't offer a constructive path forward, and option D contradicts the observed performance data. This demonstrates professional communication: recognizing success while proactively addressing issues.
10 / 21
Sarah is reviewing a colleague's pull request for a new API endpoint. The code includes a potential race condition that could lead to data corruption under heavy load. Mark's comment reads: 'This looks good!'. Which of the following responses would best convey Sarah's concerns professionally, acknowledging Mark's initial assessment while highlighting the issue?
The correct response acknowledges Mark's positive initial assessment (showing respect) but immediately introduces the critical concern – the race condition. Option 2 politely pushes for clarification without dismissing Mark's effort and frames the discussion as a collaborative process. The other options either lack urgency or offer overly simplistic solutions, potentially minimizing the severity of the issue. It's important to balance positive feedback with constructive criticism when providing code review comments.
11 / 21
You're a senior backend engineer and receive the following Slack message from a junior developer, Alex:
Alex: 'Just finished implementing the new user authentication flow. Looks good!'
You know that initial testing revealed a significant performance bottleneck – the API call to verify tokens is incredibly slow under load, potentially impacting all users.
Which of the following responses should you send to Alex to professionally address this issue while acknowledging his work?
The correct answer (option 2) is the most professional and constructive response. It acknowledges Alex's accomplishment while immediately raising a critical concern and suggesting a practical next step – testing for optimization. Options A and D are dismissive and don't address the technical problem. Option B, while slightly better, doesn't clearly communicate the severity of the issue; it leaves room for misinterpretation.
12 / 21
You're a DevOps engineer and receive the following Slack message from a developer after deploying a new version of an application:
David: 'Deployment successful! All tests passed.'
You've just noticed that CPU usage on the production server has spiked dramatically, coinciding with the deployment. Monitoring tools indicate a potential memory leak within the newly deployed code.
Which response would best address this situation professionally while acknowledging David's report?
The correct answer focuses on acknowledging David's positive report while immediately raising a critical concern. Option A is dismissive and unprofessional; option B delays addressing the problem and offers no action. Option C directly addresses the issue with a clear request for investigation, demonstrating proactive monitoring. Option D is vague and doesn't take any responsibility or offer support – it's crucial to escalate issues quickly in production environments.
13 / 21
You are a technical lead reviewing a pull request submitted by a junior developer. The PR introduces a new caching layer for frequently accessed data. During testing, you've observed that the cache is aggressively evicting items, leading to increased database load and performance degradation. The developer's comment on the PR reads: 'This should improve response times!' Which of the following responses would best address this issue professionally while acknowledging the developer's intention?
The key here is acknowledging the developer's positive intention while gently pointing out the negative outcome. Option 2 does this effectively by validating their effort and offering support without directly criticizing their approach. Options A & B are too blunt and don't offer a constructive path forward, and option D contradicts the observed performance data. This demonstrates professional communication: recognizing success while proactively addressing issues.
14 / 21
Sarah is reviewing a colleague's pull request for a new API endpoint. The code includes a potential race condition that could lead to data corruption under heavy load. Mark's comment reads: 'This looks good!'. Which of the following responses would best convey Sarah's concerns professionally, acknowledging Mark's initial assessment while highlighting the issue?
The correct response acknowledges Mark's positive initial assessment (showing respect) but immediately introduces the critical concern – the race condition. Option 2 politely pushes for clarification without dismissing Mark's effort and frames the discussion as a collaborative process. The other options either lack urgency or offer overly simplistic solutions, potentially minimizing the severity of the issue. It's important to balance positive feedback with constructive criticism when providing code review comments.
15 / 21
You're a senior backend engineer and receive the following Slack message from a junior developer, Alex:
Alex: 'Just finished implementing the new user authentication flow. Looks good!'
You know that initial testing revealed a significant performance bottleneck – the API call to verify tokens is incredibly slow under load, potentially impacting all users.
Which of the following responses should you send to Alex to professionally address this issue while acknowledging his work?
The correct answer (option 2) is the most professional and constructive response. It acknowledges Alex's accomplishment while immediately raising a critical concern and suggesting a practical next step – testing for optimization. Options A and D are dismissive and don't address the technical problem. Option B, while slightly better, doesn't clearly communicate the severity of the issue; it leaves room for misinterpretation.
16 / 21
You're a DevOps engineer and receive the following Slack message from a developer after deploying a new version of an application:
David: 'Deployment successful! All tests passed.'
You've just noticed that CPU usage on the production server has spiked dramatically, coinciding with the deployment. Monitoring tools indicate a potential memory leak within the newly deployed code.
Which response would best address this situation professionally while acknowledging David's report?
The correct answer focuses on acknowledging David's positive report while immediately raising a critical concern. Option A is dismissive and unprofessional; option B delays addressing the problem and offers no action. Option C directly addresses the issue with a clear request for investigation, demonstrating proactive monitoring. Option D is vague and doesn't take any responsibility or offer support – it's crucial to escalate issues quickly in production environments.
17 / 21
You are a technical lead reviewing a pull request submitted by a junior developer. The PR introduces a new caching layer for frequently accessed data. During testing, you've observed that the cache is aggressively evicting items, leading to increased database load and performance degradation. The developer's comment on the PR reads: 'This should improve response times!' Which of the following responses would best address this issue professionally while acknowledging the developer's intention?
The key here is acknowledging the developer's positive intention while gently pointing out the negative outcome. Option 2 does this effectively by validating their effort and offering support without directly criticizing their approach. Options A & B are too blunt and don't offer a constructive path forward, and option D contradicts the observed performance data. This demonstrates professional communication: recognizing success while proactively addressing issues.
18 / 21
Sarah is reviewing a colleague's pull request for a new API endpoint. The code includes a potential race condition that could lead to data corruption under heavy load. Mark's comment reads: 'This looks good!'. Which of the following responses would best convey Sarah's concerns professionally, acknowledging Mark's initial assessment while highlighting the issue?
The correct response acknowledges Mark's positive initial assessment (showing respect) but immediately introduces the critical concern – the race condition. Option 2 politely pushes for clarification without dismissing Mark's effort and frames the discussion as a collaborative process. The other options either lack urgency or offer overly simplistic solutions, potentially minimizing the severity of the issue. It's important to balance positive feedback with constructive criticism when providing code review comments.
19 / 21
You're a senior backend engineer and receive the following Slack message from a junior developer, Alex:
Alex: 'Just finished implementing the new user authentication flow. Looks good!'
You know that initial testing revealed a significant performance bottleneck – the API call to verify tokens is incredibly slow under load, potentially impacting all users.
Which of the following responses should you send to Alex to professionally address this issue while acknowledging his work?
The correct answer (option 2) is the most professional and constructive response. It acknowledges Alex's accomplishment while immediately raising a critical concern and suggesting a practical next step – testing for optimization. Options A and D are dismissive and don't address the technical problem. Option B, while slightly better, doesn't clearly communicate the severity of the issue; it leaves room for misinterpretation.
20 / 21
You're a DevOps engineer and receive the following Slack message from a developer after deploying a new version of an application:
David: 'Deployment successful! All tests passed.'
You've just noticed that CPU usage on the production server has spiked dramatically, coinciding with the deployment. Monitoring tools indicate a potential memory leak within the newly deployed code.
Which response would best address this situation professionally while acknowledging David's report?
The correct answer focuses on acknowledging David's positive report while immediately raising a critical concern. Option A is dismissive and unprofessional; option B delays addressing the problem and offers no action. Option C directly addresses the issue with a clear request for investigation, demonstrating proactive monitoring. Option D is vague and doesn't take any responsibility or offer support – it's crucial to escalate issues quickly in production environments.
21 / 21
You are a technical lead reviewing a pull request submitted by a junior developer. The PR introduces a new caching layer for frequently accessed data. During testing, you've observed that the cache is aggressively evicting items, leading to increased database load and performance degradation. The developer's comment on the PR reads: 'This should improve response times!' Which of the following responses would best address this issue professionally while acknowledging the developer's intention?
The key here is acknowledging the developer's positive intention while gently pointing out the negative outcome. Option 2 does this effectively by validating their effort and offering support without directly criticizing their approach. Options A & B are too blunt and don't offer a constructive path forward, and option D contradicts the observed performance data. This demonstrates professional communication: recognizing success while proactively addressing issues.
What does the "Delivering Bad News Professionally — Email & Communication for IT" exercise cover?
Practice professional emails for project delays, SLA breaches, feature cancellations, apologies, and deprecation notices. 5 exercises for IT professionals.
Is this exercise free to use?
Yes. Every exercise on CoderSlingo, including this one, is free to use with no account, sign-up, or paywall.
How many questions are in "Delivering Bad News Professionally — Email & Communication for IT"?
This exercise has 21 questions. Each one gives instant feedback with an explanation, so you can see exactly why an answer is right or wrong.
Do I need to create an account to save my progress?
No account is required. The progress bar and score are tracked in your browser for the current session -- the exercise is designed to be a quick, repeatable drill rather than something you resume later.
What happens if I get an answer wrong?
You'll see the correct answer highlighted immediately, along with a short explanation of why it's correct. Wrong answers aren't penalized beyond your score, and you can keep going through every question.
How is this exercise different from reading an article?
Articles explain vocabulary and concepts through prose, while exercises like this one are interactive drills -- multiple-choice questions -- that test and reinforce your recall of specific terms and phrasing.
Can I retry this exercise?
Yes -- use the "Try again" button on the results screen to reset your score and go through all the questions again from the start.
Where can I find more Email & Writing exercises?
Browse the full Email & Writing hub for related drills, or check the site-wide exercises index for other IT English topics.
Is this exercise suitable for beginners?
This exercise assumes basic familiarity with IT terminology. If a term feels unfamiliar, check the site Glossary for a plain-English definition before attempting the questions.
How often is new content like this published?
New exercises are added regularly across all categories, alongside new vocabulary sets and articles. Check back on the exercises hub to see what's new.