Background on Simple and Easy

Background on Simple and Easy

I have found it useful to distinguish between ideas and systems that are simple, and ones that are easy. It’s not always a clear distinction, but it feels useful when thinking about how to design systems or processes.

My first exposure to this type of thinking came during my time as an iOS software developer. I had a coworker who tried to guide me to some of these principles in his own way, and probably started me on this track of thought. However, it still took me a few years of struggling with writing readable code and thinking about system architecture to piece together these kinds of benefits and tradeoffs for different systems.

The idea of simplicity versus easiness came more into clarity when I was considering different solutions for third party library integrations on iOS and stumbled on this post about Carthage and Cocoapods by Bartek Witczak (sometime in 2017, I believe).

I would say it’s easy, rather than a simple tool. The difference is subtle, but you should see the presentation by Rich Hickey Simple Made Easy. CocoaPods is creating own workspace file and that is the place, where the magic happens. This tool is a bit like black box with monsters inside, you don’t want to dive in. This is the biggest issue.