---
title: "Troubling APIs"
url: "https://osherove.com/blog/2004/6/17/troubling-apis.md"
canonical: "https://osherove.com/blog/2004/6/17/troubling-apis.html"
published: "2004-06-17T18:13:00"
updated: "2004-06-17T18:13:00"
tags: []
author: "Roy Osherove"
description: "Avner blogs about some really weird stuff (and baad Office Developers) when it comes to creating an Office COM add-in. Really. It's as amazing to read as this from Joel : “I first heard about this from one of the…"
usage: "Licensed under CC BY 4.0 — reuse, quote and adapt with attribution (Roy Osherove, link to the original page)."
license: "https://creativecommons.org/licenses/by/4.0/"
---

# Troubling APIs

By Roy Osherove June 17, 2004

**Historical article** · Originally published June 17, 2004; technical details may be outdated.

[Avner blogs about](http://weblogs.asp.net/avnerk/archive/2004/06/17/158210.aspx) some really weird stuff (and baad Office Developers) when it comes to creating an Office COM add-in. Really. It's as amazing to read as [this from Joel](http://www.joelonsoftware.com/articles/APIWar.html):

“I first heard about this from one of the developers of the hit game SimCity, who told me that there was a critical bug in his application: it used memory right after freeing it, a major no-no that _happened_ to work OK on DOS but would not work under Windows where memory that is freed is likely to be snatched up by another running application right away. The testers on the Windows team were going through various popular applications, testing them to make sure they worked OK, but SimCity kept crashing. They reported this to the Windows developers, who disassembled SimCity, stepped through it in a debugger, found the bug, and _added special code_ that checked if SimCity was running, and if it did, _ran the memory allocator in a special mode in which you could still use memory after freeing it_.”


---

## About the author

**Roy Osherove**: Senior Solutions Architect at AWS working on AI for production and AI-driven development; author of The Art of Unit Testing and Elastic Leadership, with about 20 years of consulting and training on unit testing, TDD, team leadership and continuous delivery.

### Sites

- [RobotPaper](https://robotpaper.ai/): This blog: AI patterns and anti-patterns, AI and coding agents, and engineering leadership.
- [osherove.com](https://osherove.com): Roy's personal site. Author of The Art of Unit Testing and Elastic Leadership; consulting and training on unit testing, TDD, team leadership and continuous delivery, plus about 20 years of blog posts.
- [The Art of Unit Testing](https://www.artofunittesting.com): The Art of Unit Testing, 3rd Edition (Manning): readable, maintainable, trustworthy unit tests, plus TDD workshops in C#, JavaScript, Java and Kotlin.
- [5whys.com](https://www.5whys.com): Roy's writing on software team leadership: self-organizing teams, surviving chaos, learning mode and the Elastic Leadership model.
- [Pipeline Driven](https://pipelinedriven.org): Continuous delivery and DevOps practices: build patterns, pipeline-friendly testing, DevOps metrics and enterprise DevOps.
- [Elastic Leadership](https://www.elasticleadership.com): Elastic Leadership, Roy's framework for software team leaders (survival, learning and self-organizing modes).

### Social

- X: https://x.com/royosherove
- LinkedIn: https://www.linkedin.com/in/osherove/

### Contact

- Contact form: https://forms.gle/jQSx5KoXvrVA1JCK7

### License

Licensed under CC BY 4.0 — reuse, quote and adapt with attribution (Roy Osherove, link to the original page). License: https://creativecommons.org/licenses/by/4.0/
