Eyup - it's that Mark Smith!

Building a basic document management system with Elixir

There are only twelve principles behind the Agile Manifesto, each of them expressed in a single sentence. The one that speaks to me the strongest at the moment is this:

Simplicity -- the art of maximizing the amount of work not done -- is essential.

The Agile Manifesto

Web development seems to have evolved to a point where we have lost sight of this principle in favour of building towers of code that offer very little benefit to the user, considering the amount of effort and complexity involved.

I'm planning to build a real, working application that does something useful with the absolute minimum of code.

Let's consider a web application we might be building for a client - whatever it may be, one thing it can benefit from is having useful business process documentation built right into it. I like Daniele Procidas' Diataxis approach, so I'm going to use that as the basis, with the addition of a time component to account for change. There's more structure than the usual Blog/Post/Comments project, but it is sufficently universal to easily follow along.

I want a tech stack that speaks to the principle of Simplicity:

For my own amusement it needs to be a language and technology that I don't use in the day job. Ideally one that makes experimentation easy. Elixir, a functional language that runs on top of Erlangs' BEAM virtual machine fits the bill admirably. The language looks somewhat familiar - somewhere between Ruby and F#, both of which I've done a little work in over the past few years. There's a REPL, and even better there's a notebook environment which should make it easy to play around. The community is much smaller than that of the mainstream languages, but the quality of contribution seems to be much higher.

I'm aiming to record how it goes, as it goes along based on the state of play with Elixir and associated technologies as of July 2024 and onwards.

#Agile #Elixir #Simplicity