Software development pushes us to get better as people

Have you ever been on a really good software team? There’s this feeling of connectedness, of shared purpose. We know what we’re building, and we are skilled at building it together. This kind of team can grow some amazing software. When we work at making our team great like this, we look for new ways … Read moreSoftware development pushes us to get better as people

Software Design: Beyond Boxes and Lines

Keynote at YOW! December 2021: Software design: Beyond Boxes and Lines – Jessica Kerr – YouTube Slides Latest: References Domain Driven Design, by Eric Evans (book) Learn Wardley Mapping, by Simon Wardley; documented by Ben Mosier (site) Team Topologies, by Matthew Skelton and Manuel Pais (book) Grokking Simplicity, by Eric Normand (book) Functional Programming … Read moreSoftware Design: Beyond Boxes and Lines

Spring and JPA: use custom value types inside entities with a custom converter

If you want secure code, or code with fewer bugs, you want to track the kind of data you’re passing around. In your code, do not pass around strings or any other built-in built-in primitive type. Those are for the edges: we have to accept strings as input, we have to write VARCHAR to the … Read moreSpring and JPA: use custom value types inside entities with a custom converter

One Secret to Quality Software

They ask us for quality. What is “quality”? “Well, free of defects.” (Oh it’s a lot more than that.) What is a “defect”? “Well, when it doesn’t work like we expect it to. Like we agreed it should.” Trust me, you didn’t specify how it works. That’s my job, as a developer. To organize all … Read moreOne Secret to Quality Software

“Software” isn’t a thing

You can’t make Software. There is no “software”–there is only “software that…” or “software for…”. That’s like having a business around “writing.” Writing what?? Your writers are going to have to learn every topic they’re asked to write about. That’s either going to take a long time, involve very close collaboration with someone who does … Read more“Software” isn’t a thing

Capturing the World in Software

TL;DR – we can get a complete, consistent model of a small piece of the world using Event Sourcing. This is powerful but expensive. Today on twitter, Jimmy Bogard on the tradeoffs of Event Sourcing: If event sourcing is not scalable, faster, or simpler, why use it? Event Sourcing gives you a complete, consistent model … Read moreCapturing the World in Software

skills and/or understanding

There’s a story about some brilliant design that made carrots more accessible to everyone, and the man who made it happen: Sam [Farber], a delightful person to work with. He understood the business, but what was important was, he understood design. If he could have been a designer himself he would have been, but he … Read moreskills and/or understanding