BullshitLess Driven Development
This is a letter for you, small grasshopper programmer, that yesterday you discovered that an if is an instruction so awesome that it allows that you could run a small piece of code with a predetermined condition, and that tomorrow you will discover, very probably, what a recursive function is, what an object is and that Singleton is a design pattern, or at least this they say over there…
This is a letter for you, so that you remember it in the hard moments of your life as a programmer and so that you look for a starting point in this wonderful professional current, full of green phosphorite letters with meaning of victory, of unpaid and ungrateful overtime and of undecipherable bugs, more hidden than the dignity of the voters of Donald Trump.
Smile at life, you lucky man. Praised is your future!
And the fact is that today, here, I want to tell you some situations that, surely, sooner or later, and more sooner than later, you will live in some of your future exploits. In these situations there are monsters, mortal pitfalls and up to lethal weapons. There are unconnected religions, double morals and the worst thing of all, bullshits as to feed half the entire Congo and to remain for a Christmas dinner where the whole Sierra Leone is invited. Free Moët for all included.
Let’s start with some sentences of the guild…
This is bad.
Yes, my friend.
Although you do not believe it, quite all that you’ll do in your life will be a real shit for some. It does not matter that your experience is just one day programming, or that you have it often inevitable pressure of those who pay your salary, or simply you cannot do it better. Never mind. Do what you do, it will smell in a disgusting way you can not still imagine.
And possibly it will be. Possibly your creation will be poor and with many mistakes, but we are lucky of that surrounded as we are surrounded with constructive and charitable souls, where very few times one “Is bad” will come accompanied from one “If you want I can sit next to you and we can make it much better”.
Do not dazzle you, you are not alone.
We are the society of “You don’t know” and not the one of “I Believe that it can be improved”, and we are so complex with our shits, that we need to put at the beginning of our phrases one “IMHO” because, otherwise, the fact that we think that every single line of code done by other hands far from ours is garbage ipso facto, can be too evident.
The most polite have decided to mask all this reality with a great and lovely word, and dear reader… save it properly in your untrained memory.
These of product…
Other one of the sentences that is so common among our cloud of egos is “these of product, how heavy they are with their useless pixels” or seemed, normally with burlesque and challenging tone.
Yes, my friend, a classic topic between partners of department, very habitual in any company where some people take care, not only about how amazing is the technical part, but how good are sales. Not all the companies are so modern and liberal as to ignore sales metrics and final user inputs.
Ah… these of product that want to fuck our lives with stupid things like pixels for our landing pages, with seemingly useless changes in the web, or with integrations with payment methods or shipping providers. As soon as you meet these miserable, please, spit in their faces, because of their disrespectful behaviour toward us, the programmers, whom we do the projects in the company we’re working in with new technologies, even unknown technologies, just because they are cool and freaking trending, that we decide that the new project in the company will be designed with 378 different layers, each more useless, just because some nobody with hat and whose fans have tattooed the Clean Code book in its soft buttocks, said someday that it was the last thing in being hipster, even without knowing the real goal of our project and its timings. To us, that we do a form in 5 days because we want it to be compatible with the GameBoy Advance, with the small screen of the microwave and with the thermostat of our heater. To us, that nobody prevents us from being the whole day with the nose hooked on that on-line groups, more likely an ego orgy than a place where to learn something.
To us that we are so responsible.
I will tell you a secret. An undertone. Don’t let anyone hear us.
If anyone knew each of the shits that we do in this paid work, or if they knew each of the erroneous architectural decisions that we take for the mere fact of wanting to be the cooler, we all would be dismissed. All of us.
Although I suppose that we prefer to say “These of product…”, to show off that we not only can do a foreach, but also we can do the work of half a company, and continue with our lives with the head quite high, leaving a disgusting track of Legacy Code in our backs.
In my company we do…
This is a brilliant pearl, the sapphire of the phrases, although to find it you will have to strain a little bit and leave your house in order to let the light of the sun impact your smooth complexion, and start relating to other persons of other companies.
And the fact is that you will discover that all the other companies use the last of the last. Good shit in their stack of technologies and hard drugs in its last incorporation (when they do not have authentic machines in its backend department, they have an ex-facebook in its system department or a super crack as CTO come from the far elvers mountains).
All the companies are equipped technologically extremely well, with a workforce build with the best of the best. You will understand this in the future, when you start working in a new company. You’ll never, ever, have the printout of having begun being employed at a slaughter full of corpses, rotting during the last 10 years.
And the fact is that, my friend, it seems that having that all our code is a shit, and that those of product are the whole day between a “put this pixel here” and a “put this banner there”, it turns out that we do not have time to make our work properly. But remember! it is not because we are all authentic bunglers in most cases, not at all. It is because we’ve had not time.
But Uncle Bob says that…
Rapid and precise.
- Is Uncle Bob here?
- Does Uncle Bob know the project?
- No, am I right?
- Then I don’t give a shit what Uncle Bob says.
End of the discussion.
The key of everything, BLDD
Said this, you will see that the world is an inhospitable place, full of people with few desires of helping you and too much fucking you all and seeing you sinking. But nevertheless you have to do a switch because, given the circumstances, you can’t do it better, or you have to do a project in a couple of days and unfortunately you cannot make it compatible with the handlebar of your bike.
I present to you, humbly, the BLDD, abbreviation of BullshitLess-Driven Development (another thing that you need to learn is that, here, we write everything with abbreviations, in English although both speakers are from Albacete and that you must put between phrase and phrase the word Trade-off. If you do not do this, you will not be accepted by the exclusive circles).
The BLDD is a very simple practice, based on ignoring all those frequencies that are broadcasting bullshit. Exactly the same as what is commonly known as sending to fuck off, but with a modern name and in a way that can make us feel cooler and much more modern.
It is commonly recommended to make tests first and then implement BLDD. Otherwise, you’re shit.
This methodology counters almost all other strategies ending with DD, and is applicable almost in all cases.
- If someone tells you that your project should have tests first… BLDD
- If someone tells you that you’re too coupled to the framework, even if you’re only trying to do you CV? BLDD
- If someone tells you that your code is shit and that can be redone properly
in that case, break his neckBLDD
As you can see, it works like Swiss knife. The good part of this practice is that be sure that anyone, any time, will tell you how you should use it and implement it. An endless amount of formulas, each one more incredible, can be part of your executions when implementing BLDD.
Some ending advices
To end this cookbook of the good developer, a small list of ideas and advices for your body…
- IMHO, if any time you make a public presentation in a conference, take with you on stage the red DDD book. As soon as you see anyone in the first row sleeping or playing with his mobile, please, throw him the book with as much emphasis as you can. It will hurt so much. If he continues sleeping, you still have other colours…
- IMHO, a conversation ends when someone tells the word Annotation
- IMHO, to make friends on Twitter you only have to say “TDD is dead”. To make enemies, exactly the same.
- IMHO, your project tests is like the unemployment. The important is the coverage you can tell other people, not the real quality of the cases.
- IMHO, in Barcelona, the developers are used to changing from one company to another one once per year. At 40 years, your wage will be around 120.000 and you will be a fucking god in 20 languages, including assembler. You will still be extremely stupid and lazy when defining variable names and all your code comments will be in your native language
- IMHO, nowadays, Event Sourcing is super mainstream. Yeah, exactly, this super useful practice in all our sector. So I calculate that in about 5 years, in some companies you will work in, you will find a set of intractable, incomprehensible and undocumented classes and packages, fruit of this fashion. You’re welcome.
I will finally tell you that good luck. Try to learn as much as you can, read as much as you can and teach as much as you can, but never let anyone tell you how to do your stuff (unless someone tells you to not use Prestashop. In that case, please, follow the advice blindly). Have enough criterion to accept that many of the technologies, architectures and practices you will discover and listen in conferences, in your friends talks or in Twitter threads, are not useful at all in your projects.
Work hard, follow your dreams and remember that you have to buy a lot of technical books, and as soon as you receive them, you need to take a picture and publish on Twitter something like… “My new plan for the weekend”.
For everything else, BLDD.