InfoQ Homepage Software Craftsmanship Content on InfoQ
-
Kill the Mutants - A Better Way to Test Your Tests
Roy van Rijn explains what mutation testing is and how it works, comparing several Java frameworks (PIT, Jester, Jumble) that enable automatic mutation testing in a continuous build.
-
Introduction to Java Profiling
Jerry Yoakum discusses how code profiling tools and techniques can be used to evaluate code for constructions and errors that are likely to cause problems, highlight places in need of refactoring.
-
Making the Case for Review
Austin Bingham answers questions on reviews: how long should they be, what should be reviewed, how do reviews account for an increase in quality and ROI?
-
Learn from the Mistakes of Others
Alison Lloyd examines some less-than-stellar occurrences in non-software fields, drawing out some ideas that she hopes will make software development a little less painful.
-
Microservices: Software that Fits in Your Head
Dan North describes a model for thinking about the age of code and argues for replaceability as a first class concern, ending up with something that looks a lot like microservices.
-
Beautiful Structure
Chris Chedgey explores how “locality of relationship” affects coupling, cohesion, and the width of interfaces, showing structural patterns that increase or decrease complexity.
-
Becoming a Better Programmer
Pete Goodliffe keynotes on what it takes to become a better programmer, discussing tools for reviewing the personal skillset and techniques to help one “become a better programmer”.
-
Opportunities to Improve System Reliability and Resilience
Donald Belcham explains how to improve a system’s reliability by using appropriate code patterns.
-
The Importance of Culture - Building and Sustaining Effective Engineering Organizations
Randy Shoup discusses several important aspects of engineering cultures: hiring and retention, ownership and collaboration, quality and discipline, and learning and experimentation.
-
The Rationale for Continuous Delivery (or What Does ‘Good’ Look Like?)
Dave Farley looks at a history littered with inefficient processes resulting in poor quality and failed projects, wondering how we got here, what can be done and what does good really look like?
-
The Rationale for Continuous Delivery (The culture and practice of good software development)
Dave Farley discusses the problems raised by inefficient processes creating poor quality output, too late to capitalise on the expected business value, and proposes solutions to them.
-
Naming Things
Ian Barber discusses the importance of behavior, domains and clarity of the names used when writing software or building systems.