Chapter 2. Spotting Hidden Dependencies in Incremental Changes

Imagine that you work for a product company that is known for their massive knowledge base of high-quality documentation.

The business is fortunate enough to have very dedicated customers, many of whom also write their own blog posts and articles to share helpful ideas on how to get the most out of your company’s products.

To encourage the ongoing development of community-based learning materials, you’ve been asked to build a public wiki that will be hosted alongside the official knowledge base website.

You would prefer to implement this functionality as a standalone project, but for strategic reasons that haven’t been fully explained, your product manager expects you to integrate the new wiki features into the existing knowledge base. The wiki will live in its own area, but it’ll share the same codebase and infrastructure.

The challenge will be to bring the wiki online without having any negative impact on the existing website. On the surface this seems easy because no old code will need to be modified to support the new features, but deeper issues lurk below the waterline.

In this chapter…

You will learn about the many issues that can crop up whenever a production codebase is gradually extended to fit a new purpose.

There’s no such thing as a standalone feature

You spend a couple days building out a minimal wiki, and the features you build end up looking quite similar to what exists within the knowledge base system. ...

Get Programming Beyond Practices now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.