Manifestos and Checklists
The Agile Manifesto was probably the first, but certainly not the last attempt at creating a web page that provides a whole platform to a certain ideology.
During the past 20 years, lots of people got fed up with some situation, and wrote a web page (sometimes, a whole website) dedicated to scratching that particular itch, usually with the word “Manifesto” on it. Sometimes, instead, using the word “Checklist,” but with a similar objective. These articles range from the useful to the funny, and they usually have the best intentions.
This article is a summary of the ones I could find in the past 5 years of collecting such links into a Joplin note that grew uncomfortably big.
Let us start with Manifestos, beginning with the most well known of them all.
One does not need to introduce the all-mighty Agile Manifesto, which started quite a revolution 20 years ago. In a similar vein we can find the similarly worded and presented Manifesto for Software Craftmanship. Both look quite harmless, from a distance at least.
The implementations of the ideas behind Agile, however, prompted quite a response: the Tarantino-inspired Programming, Motherfucker which is totally not SFW, Artisanal Retro-Futurism crossed with Team-Scale Anarcho-Syndicalism which includes a video, and the Sweary Lightweight Agile Planning or SLAP methodology, which includes a SFW version should you need one.
I hope you can see an evolution in the three paragraphs above, and maybe this will give you an idea of the current state of the software industry.
Let us now concentrate in the best part of our craft. You might want to use UTF-8 everywhere in your code and documentation. Whatever language you use, remember to follow the 12 Factor App principles if you are writing backend services, or the 9 iOS Factors in case you are writing apps for the App Store.
If you are into PHP, consider reading PHP the Right Way as well as the Field Guide to Elephpants. Kinda cute. If you are into reactive thingies, which are quite fashionable these days, read the Reactive Manifesto instead.
Of course, writing the code is just a part of the story; another is debugging, and for that, make sure you have a rubber duck nearby.
Once your code runs, you need to release it. For that, use rootless containers, follow semantic versioning, and keep a changelog (yes, there are two such manifestos about changelogs, clearly they had not heard of one another.)
If your Linux is slow, make it fast again.
Finally, if you are in the business of writing console (CLI) applications, consider reading the Command Line Interface Guidelines (arguably featuring the best font design of all manifestos in this page) and paying attention to the
DO_NOT_TRACK variable in your environment.
There are also manifestos for designers. Let us start with the Laws of UX, the Photoshop Etiquette (please rename your layers, people,) and the guide to Brutalist Web Design. I am not a graphic designer, so maybe there are more, but I have not came across any more than these.
Declarations of In(ter)dependence
These manifestos deserve a section of their own. The oldest of these is the EFF Declaration of Cyberspace Independence written in Davos, in February 1996 (when the word “Cyberspace” was still cool). Then comes the Declaration of Interdependence which according to Graham was originally located in Alistair Cockburn‘s website.
Finally, here is Larry Sanger’s Declaration of Digital Independence.
Whatever these things mean.
Communication & Business
Sometimes the problems lie in the way people talk to each other, and the following manifestos try to bring solutions to those issues.
Take this one for example: the reason why your question in Stack Overflow receives no answers is because of the way you asked it; check the XY Problem manifesto to learn more and change your question asking habits. It is a bit like a meta-RTFM of sorts.
Or maybe you need to make better comments, follow the core protocols, or to learn how to explain security honestly. Of course, none of this would matter if you are not working in a responsive organization, anyway.
Or you might just need to make clear to somebody who is the team behind a website, that is all.
The global collaboration required to make good open source software requires lots of goodwill and mutual understanding. For example, if you are just creating a hobby project, make it clear to others that it will go unmaintained.
On the other hand, if you want to contribute to open source software, remember to read the Contributor Covenant first.
Maybe you are not a developer, in which case you would like to know what open source software might help you replace some other commercial package, and there is a guide for that as well.
Do Not Do This, Do Not Use That
Then we have the family of widely negative manifestos. They range from the obvious, such as Chrome is Bad and do not use Medium, to the least obvious, like not using the “Hello” word in chats to list all the things that are wrong with YAML.
The truth is, the whole industry has been designed to be defective by design.
The 2020 pandemic has changed our relationship to work and society. First of all, stay the fuck home. Then, remember that it’s OK if you do not feel well. And also, project managers out there, you must adapt to the new remote working conditions ASAP. Did not you get the memo?
The software industry keeps its head buried under the sand, failing to acknowledge the role of ethics in society. For those of us who refuse to ignore the truth, here go some enlightening reads: The Ethical Source Movement, the Post-Meritocracy Manifesto, and a Contract for the Web.
Read them. Breathe. Change yourself.
We live in the most challenging times of our species. Our relationship with one another and our economic organization must change, and here are two interesting manifestos for that: Common Futures and Participatory Economics. If you give a shit about humanity, you will find them truly inspiring.
To finish, some checklists you might find useful.
With all of those deployments in the cloud, security has become an actual concern. For that, here are the security checklist, the Azure checklist, and if you use AWS, here is the AWS Security Checklist for you. If you follow DevSecOps practices, here is the DevSecOps Checklist.
There is no conclusion, this page is just a list of links, click on them and have fun. I like collecting stuff like that, so expect more posts similar to this one in the future.