The No-Process Process

"I'm currently developing software outside the software industry. No Scrum. No JIRA. No meetings. No sprints. No microservices. No Clean Architecture. No DDD, TDD or other acronyms. I just build the software. I don't wanna jinx it, but this is therapy for me."

How great does that sound?!?  Pretty amazing to me.  Few things in life are as satisfying as getting into flow state and just building great stuff.  For me it usually involves some white noise or instrumental music and never happens often enough anymore.

Back in the day there was another anti-process sentiment called “Programming Motherfucker” that had similar sentiments:

"We are a community of motherfucking programmers who have been humiliated by software development methodologies for years.
We are tired of XP, Scrum, Kanban, Waterfall, Software Craftsmanship (aka XP-Lite) and anything else getting in the way of...Programming, Motherfucker."


I feel the sentiment… I really do.  And I agree that half of the methods and methodologies mentioned are terrible almost all the time.  

BUT

There’s always process.  Even if you’re working on something for yourself, by yourself, you’ve got a process.  Even if you never think about your process, you have a process – it’s just an unexamined process.

You decided what you wanted to build, and then you broke that work down at least enough to decide what part you’ll start with.  And of course you have a process for writing the software itself.  That’s a lot of process.When you work with another person, whether it’s for complementary or supplementary help, you run up against another bunch of issues where some process is necessary in order for the additional person to actually result in additional results.  Working together effectively needs a way of sharing context about all the decisions you were previously making on your own before.  You also need to share updates, like what you’re working on (at least so that they don’t simultaneously work on the same thing, duplicating effort) and what’s done (so they don’t do it again).  But maybe you find even more effective ways of collaborating (and that’s process too).  

Now I totally understand hating on a bunch of traditional aspects of process that range anywhere from “not worth the effort” to “totally useless”.  For me there are a ton of things that fall in those buckets like sprints, story points, and almost other estimation methods.  And then there are things that are helpful for one team that are not helpful for another.  This is what’s really tricky about building a tool that you’d like to be able to help all teams.  

But there’s always process.  The only thing we can really do is make sure it’s minimal and it’s actually serving us more than we’re serving it.