$ cat posts/the-end-of-agile.md

The end of agile

Part 1: Grunge

es Leer este post en español →

Come as you are, as you were
– Kurt Cobain

I remember the day Kurt Cobain died. I heard about his death on the radio; I was with some friends and partners from the company where I worked.

It was April 1994, and we were working on a project for the Chilean internal revenue service. I liked Nirvana, the whole grunge scene in general, Alice in Chains, Pearl Jam, etc. That afternoon the news hit us hard, because Cobain was not only an independent rock star, he was also a young guy about our age.

On the other hand, in a way I felt that we, in our little software development company, were an indie rock band too.

I don’t know whether I can talk about the system we were building back then; I will only say that my partners and I implemented a technology that was quite innovative for the time. In many ways it was a grunge solution.

Grunge seems simple, in musical terms. Its stance was to get away from the style of the more commercial rock and pop. The idea was to go back to basics. The amp cranked way up, the drums played very fast and very hard, along with a singer with a ragged voice, almost screaming. And of course depressing, disenchanted lyrics, with a bit of protest against the prevailing social alienation. Grunge takes a lot from punk, and early heavy metal, from Neil Young’s protest rock, or from David Bowie’s first melancholy songs.

Back then we listened to good music while we worked. We took turns picking tracks; we had a computer with a CD drive and some good speakers, so it could be heard all over the office. We listened to almost everything, but mainly rock. Our customers were companies that provided support services to the banks, or a few government agencies; we were also subcontractors for bigger companies.

Above all we wanted our independence. Our guitars and drums were algorithms written in C, or C++. We used Linux when almost none of our customers knew it existed. It’s not that we were particularly idealistic about open source; the truth is it was a more pragmatic position. It was cheaper for us than installing SCO, Solaris or AIX. It was only when we landed an important contract with a telco that we were able to buy a Sun SPARC, and there we installed Oracle. Our PCs had DOS, Windows for Workgroups and Linux (over time I started using Yggdrasil, but it is almost certain we installed Slackware, for the geeks interested in those details).

That solution we were working on in April 1994, for the internal revenue service, was odd by that institution’s standards. They were only just migrating to Oracle at the time and had an enormous amount of legacy code in Cobol. Since our process was written in C and used no database at all, it was hard to get them to adopt it. We even wrote a small domain-specific language that mimicked Cobol syntax, to ease adoption. But even so there was reluctance to use it afterwards. They never called us again. After all, it was more reliable to use Oracle than that grunge solution written by a few hackers barely surviving in a small company.

But we delivered our solution on time, and it worked very well, too well. I suspect they had never seen anything solve that particular problem so fast.

We did things like that at Enfasis, which was the name of this small company. I don’t remember whether I was a partner in 1994, but in time they invited me to become one.

I remember that we once developed an SLR compiler that translated EDI documents into XML, or HTML. We also designed cryptographic solutions for banking and for other customers I’m not sure I can mention (I don’t want men in black knocking on my door). We also implemented many SCADA projects; I have written a bit about that before.

One of the great things about that small company was that every design was discussed by all the partners. I remember Marco and Ricardo with their cigarettes, asking hard questions and arguing with each other. Or Rodrigo, who made his case in front of the screen, writing code. Jorge, who preferred to show a proof of concept. They all looked at me funny when I wrote the proposals to customers in LaTeX, and wrote my code using CTangle and CWEB. We were young, smart, daring and innovative.

Some five or six years later, in 1999 or 2000, Ricardo and I developed a piece of software for the Chamber of Commerce that cut a process which took a whole night down to minutes, software that was still in use in 2015, as I was able to confirm (I suspect it is still in production).

I am proud of that time, because we built solutions that were well thought out, validated by many heads, tested in theory and in practice.

It was at that company that I started experimenting with Extreme Programming. Every so often we gave internal presentations on some technology. I remember submitting a proposal (probably in late ‘97 or in ‘98) to a customer who required us to describe our working methodology, or propose one. In that proposal I included a diagram like this one:

When I read about XP, I realized we were doing a lot of XP without knowing it. So I explained to the team what it consisted of and we tried to implement it.

But innovation and individual intelligence and mastery are not enough, and they guarantee nothing. We had several problems with sales management and project management. Maybe we were too innovative, on top of being perfectionists. We also oversold ourselves many times. We lacked the experience to run a software development company. Not everything is about individual technical skills.

We made money, but there were bills to pay, employees’ salaries, and we partners were not satisfied with our income. I was also in debt, my first marriage had failed, and I wasn’t excited about what I was doing.

Jorge, one of my former customers, became operations manager at the Chamber of Commerce and invited me to join his team. The grunge days were over...

The rest of the chapters:

Part two

Part three

Part four

Part five

Part six

Part seven

Part eight

Part nine

Part ten

Part eleven

Part twelve

Comments

comments powered by Disqus