I’ve been on quite a few agile teams since 2006-2007.
I remember the early days of SILO. We were one of the first agile teams in the open source community. Plan short iterations, build out in quick bursts, fail fast and recovery quickly. It was revolutionary and we were doing things no one else was able to do because of the workflow we were using.
I remember at the time, the methods we were using were not quite understood by some of the more established groups for a long time, and over the years I’ve seen agile cross over into business models and it’s always generated value and it’s building amazing products.
So today, I’m at LinuxFest Ohio 2016, and I’m reflecting on all these amazing products that are generating momentum in the open source ecosystem, and a troubling thought hit me.
Is agile really feasible for intelligent systems design? It’s generating complex products, complexity is not the issue. My concern is that, and perhaps it is my own ignorance of the current cultural profile of agile methodologies, the introduction of agile saves money by trading planning for fast delivery models that are iterative, resulting in faster working software being put out– planning for systems components takes an enormous amount of resources and is prone to running into problems — if you look at the early days of the internet where the world’s top data scientists building RFCs you’ll see what I mean — some of the world’s greatest minds collaborated for 30-40 years to develop the standards that all of these new products and systems rely on at their core, and they took many, many iterations, 10’s of thousands of hours of peer review, and many, many versions before they were stable enough to be used.
I was considering all of this in deciding what workflows, and conceptual development methodologies I wanted to use for SURRO Linux when it’s time to start laying it out.
I’ll have to put some more though into it, but, I do not think that agile is the way I want to go with this SDLC — it seems to me that agile would be good, even best practice, for enterprise development patterns where stakeholders are hoping to get a functional prototype sooner, but, as an operating system, I will want to spend careful planning on core system components that are used as building blocks for larger components, with simplicity in mind. I do think that if I were developing a web application that agile would be best.
Agile’s bringing us some fantastic products and concepts. But are they more like sandbox proof of concepts running on systems that were, most often, built in C, after years of careful model planning?
I don’t want to give the appearance that I’m not drinking the agile koolaid. I am, but I’m in enterprise and spend alot of my time building enterprise solutions. I think if I were going to build a platform that these types of services rest on that I’d want to use the same considerations in the SDLC that were used for existing systems until I think I can do something better– and I do not think an agile workflow would provide the stability needed for a OS-layer product.
I want to reach out to someone who builds lower level systems and solutions and see what theyre thinking.