I’ll pass you this link that Jordi sends us… For many years we have been told that software projects are engineering projects. That there must be documentation, planning and control to successfully complete the development of a software project. This idea is changing. The debate is open. Sometimes, it turns out that the apparent chaos, the freedom of action and thought added to a community of people who contribute and carry out their ideas without any methodology create really good projects.
It is worth your reading. Hoping that you find it interesting and above all… inviting you to include your comments:
My opinion… at the time, I considered myself good at programming. I haven’t done it seriously for years because I’ve gone in other directions, but I remember that I loved solving the specific problem and I loved seeing that what I had in mind a while ago was done and working. I graduated in computer science in 1997… a lot has happened since then and what is most clear to me is that despite the fact that 22 of the 25 subjects in the career were basically theoretical, when I landed in the world of work the important thing was to deliver development date. Even if it wasn’t finished because the deadlines were impossible, but something had to be delivered and then… it’ll be fixed. The application of any learned methodology was a utopia. The thousands of theoretical paragraphs that we had to learn, statistics, algebra, mathematical analysis, algorithmic, concurrency, automatons… What have they served me for in my working life? ABSOLUTELY for NOTHING… time, effort, sweat and tears wasted and thrown away. Absolute waste of precious time in my life where the only goal, as sad as it may seem, was to “pass an exam” whose content you forgot a week after passing it. Or someone explain to me if he is capable today of solving one of those stupendous integrals that we used to do without any problem in second grade…
You learn to survive. To search. to document you To educate yourself… but the real career begins when you finish. On each site you learn real problems. In each company you face different situations. Why don’t they stop all the fuss and really teach what is needed next? When you get out of college you’re a pipiolo who has no idea about anything. Any FP comes out better trained for their work than us graduates. A lot of theory, a lot of books, a lot of exams and despite the thousands of practices that we had to carry out… nothing similar to the reality of what you find later.
We learned UML, Merisse (I don’t remember if it’s spelled like that), we learned programming methodology, metrics… Does anyone use any of this in real life? Who, how, for what? In my opinion it is impossible. Anything you program can be improved. As much as it seems perfect today, tomorrow you can think of eight more things that could be included and that would greatly improve what you did yesterday. And this is not predictable, nor is any methodology applicable. What’s more… I have sometimes faced having to stick to a strict analysis done by… supposedly… expert analysts, where there were blunders in design. Where being a programmer you realize that if you set it up sticking to what they give you on paper… you blunder… or when you really get down to it and put your hands in flour, you see that doing it in this other way would be much better… programming is more an art than a science. Someone who is not born a programmer, no matter how hard he tries to learn techniques, he will never be a good programmer. Just as if you don’t have the art of painting, no matter how much you take a course, you will never paint a good painting… which does not prevent you from painting a painting… even if it is not good.