On more than one occasion, I have used this phrase: I love writing software, so much so that I would do it even if I didn't have to do it for a living. And it's true. The process of creating something is magical, exciting and fulfilling. As software developers, we don't always get to create interesting things. Quite the contrary, we often find ourselves in cost centers building some mundane line of business application for some other cost center. Mostly, CRUD applications.
But, that's not necessarily a bad thing, at least in my experience. I like to make those boring CRUD LOB applications work well, with good UX and design when possible and that can be rewarding, despite the insipid nature of the application being created. You can make a boring solution fun by doing it well...if you're allowed to, that is. We'll get to that shortly.
I just completed a tiny macOS menu bar app in my spare time. It doesn't do much, but it was a blast to build. I mean, I felt like a kid again working nights and weekends, learning Swift, Cocoa and all of the weirdness of macOS desktop development. It wasn't all fun. Actually, it more pain in the ass than anything. But, I created something that I like. It's something I want to refine more (I've already released 3 new builds in the first week). I want to continue making it better.
Even though writing that app was hard in some technical ways, it was also liberating. Why liberating? Because there was no process. None. When I say process I mean formal constraints, the kind we all endure (and some like) in the corporate world. You know: Agile, SCRUM, Kanban, waterfall, meetings, politics, agendas, micro management, egos, deadlines, the march of death, etc. Nope. There was none of that. Just me, Xcode and the council of my own will...also a desire to complete something within one week. It took two.
What I have come to learn about myself is this: I truly enjoy what I do, but I detest the circumstances under which I have to do it.
Oh, I manage. Yeah, I go to the meetings, work toward the deadlines and mark my stories complete so the burn down chart looks nice and neat. But all of this process hinders me from doing what I love, creating software. It prevents me from doing it as well as I can. And that causes a sort of subconscious stress that manifests itself in various ways, like tension headaches, being ornery and lousy sleep.
Not everyone is like me. Some people function very, very well within the constraints of formal process and for those people I say, good for you, because the corporate environment was designed for people of your ilk. For those of us who do our best work independently, we can at least have side projects to keep our sanity. But I think the "enterprise" misses out on a huge amount of potential by adhering to the current formal constraints that rule the day.