Most of us have heard of at least one project that at a certain point became so complex and unmaintainable that people involved in it developed a fear of touching the code and the project slowly stagnated to death and got replaced by more agile competitors.
If you spin up a droplet and deploy a simple site to it and never touch it again, don’t expect it to be up and running forever. It’s likely that the disk will get corrupted several weeks or months later. It happened to me 5 times now. Once I even got a newly restored droplet corrupted again in less than a week. It was a completely new droplet in another data center set up from scratch — not from their backups. That excludes corruption of the backup if there was one.
I see a lot of teams debating whether or not they should be writing automated tests. In fact, I see even more teams not writing any tests at all, but that’s another story.
I see domain logic in controllers too often and I hope that after this post I’ll see it at least a bit less.