Software practitioners believe if you can’t reproduce a bug, you can’t know if you’ve fixed it. This belief has led to many long days and late nights spent trying to brute force a system into behaving just as the bug report described to no avail. Issue tracking systems have a special resolution type for just this situation—Cannot Reproduce.
What does it mean when we can’t reproduce an issue? It means there are variables outside our understanding of the system, such as inconsistent configuration in the environment, state that isn’t observable, or race conditions happening in real time. However, things are getting better. Michelle Brush highlights modern programming principles and practices that deliver reproducibility in systems, arguing that these approaches are bringing us closer and closer to the death of Cannot Reproduce.
Michelle Brush is engineering director for Cerner Corporation, where she leads teams that develop the platform for ingesting stream and batch data specific to Cerner’s Population Health solutions. A math geek turned computer geek with 15 years of software development experience, Michelle has developed algorithms and data structures for search, compression, and data mining in both embedded and enterprise systems. She is the chapter leader for the Kansas City chapter of Girl Develop It.
©2017, O’Reilly UK Ltd • (800) 889-8969 or (707) 827-7019 • Monday-Friday 7:30am-5pm PT • All trademarks and registered trademarks appearing on oreilly.com are the property of their respective owners. • email@example.com