re: Livable code, embrace the practical mess VIEW POST

FULL DISCUSSION
 

Well, I hate to rain on your parade... but I don't see the point of writing this article.
Don't get me wrong: the topic is important, and you make some very good remarks, but...

  1. There is no such thing as "too clean". What you are pointing at is not excessive cleanliness: it is misguided purpose. To use your analogy, the "showroom" space is unlivable because its purpose is to show off.
  2. Your "How to get there" recipe is nothing new — it's just a tiny fragment of the "Clean code" principles by Uncle Bob and others.
  3. The most important part of software is... software! The "system" moniker you use here could be applied to 99.9% of all human endeavours. It's irrelevant to the specificities of software development. Problems related with teams are the same everywhere, and they stem from lack of professionalism. Lack of professionalism shows when somebody either: a) doesn't know what to do; b) doesn't know how to do it ; and/or c) doesn't know how to behave while doing it.
  4. Architectural problems stem either from lack of professionalism or from shifting requirements. If you don't have enough sw architecture knowledge inside the team maybe you should hire more help. Here your analogy crumbles, because you talk about getting a "stylist"... you are mistaking surface features (style) for structural features (architecture). You definitely want to get an architect, if you can afford it... Lack of a well thought-out architecture is the reason why so many software projects look like shanty towns.
 

Thanks for your reply. I never expected everybody to agree with my vision, that would totally miss one of my biggest points. There are a lot of guides, articles and what not out there, mine is one of them, as is your reply. I hope people read them, and start thinking for themselves. I do agree with you that lack of professionalism is certainly and issue, although it feels a little like saying everybody should be professional, so everybody should know what to do, how to act, have figured out how to find a solution to any problem. I use the term professional quite often, but I realize that I'm having a hard time actually defining what actually realistic professionalism is in our industry. What's you opinion on this?

 

Actually, I now take back the first statement in my previous reply because I guess that fostering this kind of discussion was the point of your article.

Regarding professionalism, for starters it should be noted that there are levels. So, one is never required to be perfect at everything at all times. But there are basic levels of professionalism. Though these levels are a bit fuzzy, in every industry there is a somewhat clear set of best practices and basic knowledge required for the professions in that industry. Basic knowledge is usually consolidated by academia and professional institutions (e.g., IEEE, ECMA, W3C, etc.). Best practices come from individual or collective professionals in the field, like Bob Martin, Martin Fowler, Mozilla, Apache, etc. There are also standards bodies and compilations of knowledge (see for instance computer.org/web/swebok/v3 ).

If a person doesn't know the best practices and/or basic knowledge in a particular field, I would venture to say that that person, at that time, is not a professional in that particular field. In a professional setting, that person can, at best, be a junior/intern/apprentice, and their work always has to be supervised.

Of course, best practices are always shifting and evolving. So, I would add a couple other requirements:
1) the ability to keep up with best practices;
2) the ability to contribute to the revision of best practices.

code of conduct - report abuse