Methodologies vs Technologies

Technologies are made out of languages, toolchains, SDKs, standardized hardware and more.

Methodologies are made out of practices of pulling off technologies.

Headlines are written about technologies (Python, JS, etc) from a distance.

Methodologies are sold as the one-right-way. Agile had its run, and mob-programming is emerging as a thing lately.

Methodology fads are at least as prevalent as technology fads. One is usually more annoying than the other, depending on who you ask.

Both are largely attempts from different angles at solving the same problem: energy cost. Specifically the human kind.

Throughout a project, human energy is suboptimally spent on comprehension or coordination.

Poor or over-engineering cost future comprehension energy in the form of difficult bugs. That's what technical debt is.

Before version control came around, working on the same project requires assign cognitive budget just to not undo a teammate's work.

Given the state of art of software-making, it's safe to say there are always energy leaking somewhere in the course of a project.

Given that energy cannot be destroyed, only transferred, then energy expense is inevitable. Your only choice is timing: whether to absord this cost now or the future.

Big technology investment is a way to pre pay energy cost at a much lower rate. Major languages, OS's, platforms built from scratch are all instances of this. By targeting specific energy holes, a new invention basically propose that you no longer need to pay the energy cost in the future if you're willing to pay it upfront by adopting this new tech.

So why bother inventing new methodologies? Methodologies are the refuge when technologies fall short.

Since no tech is perfect and often introduce new problems, methodologies are workarounds that end up occupying the center stage.

Conversely, technologies are the magic that make methodologies unnecessary. I doubt there's any mainstream methodologies for assembly language, since C made assembly obsolete. But there are plenty of methodologies to manage the problems that C created.

Before Github came around, teammates need a social contract to decide what can be done and not done. git got those coded in, and methodologies are made unnecessary. All you need is to subscribe to how git.

We subscribe to methodologies as a way to gain back some human control when the tech fail or is too magical.

For that those reasons, managers gravitate to methodologies. Picking methodologies is something managers can control. They are not measurable and not deterministic. Those that are would have been coded into technology.

Technologies came with energy pre-stored, energy conserved during invention to solve a specific problem. Methodologies shift energy around, making tradeoffs between project parts.

Methodologies are political, it's more about people than about tech.

Technologies are ubiquitous and mechanical. Adoption choice do not typically bring around competitive advantage; its combination with methodology does.

Methodology is for live player; sticking only to technology is for dead player.

Technologies are Lindy. Once adopted, they tend to stick around overstaying their welcome.

Methodologies don't have that problem. They are quite swappable, hardly sticky to the manifested outcome except to the team's habit.