An initiative for more professionalism in software development
Software development needs professionals. But who are Professionals? People who earn money with software development? It's more than that. Professionalism in software development is nothing about money. Also it's only partially related with a certain education path. There are professional developers who earn few or no money at all with their software and we know professional developers who have neither diploma nor an academic degree.
Instead professionalism is represented by two different aspects:
A professional software developer is actively interested into his or her profession. This means reflecting on his or her product, way of working, materials and tools. A professional software developer is not simply satisfied when his boss or his customer is satisfied. Neither he is simply happy with manufacturer recommendations. Rather than that he steadily evaluates his results and is willing to develop both himself and his profession.
A professional software developer has an inner value system. Against this value system he double-checks his results and actions. Solely when his work applies to this value system, he feels he did it well and professionally. He strives to stick to his values also under adverse circumstances like pressure from customers or manufacturers.
Putting it that short this may sound somehow outdated or sectarian. Should developers perhaps create guild laws and swear an oath? Of course it's not meant that way. Though: Lacking an exact definition of "good software development" a lowest common factor is really required. Our line of business needs quality standards or at least a level of expectation for professionalism. Passed are times when anyone was adequate qualified who was able to write a few lines of code in BASIC. Either way still a computer science degree doesn't really say something on one's software development skills.
So what to do for more (visible) professionalism in software development? Let's first of all accept the problem in our line of business and second do purely a small step. Neither master courses have to be redefined nor needs any professional association to be founded. Much more efficient would be if all of us had read at least one book in common. Already a common agreement on the statements in just one book would lead to a consensus with some large potential.
With Robert C. Martin's Clean Code we think we found such a book that is worthwhile common lecture. Tough it is neither a perfect book nor we accept everything in it without any reservation it perfectly shows the right mindset: It is an expression of profound reflection and has the courage to put down a fundamental value system.
Clean Code is not about a platform, a technology or a coding paradigm. So you don't need to like .NET, Java, ASP.NET, SVN or OOP to benefit from. It is all about the essence below: Code as structured expression of functionality. Considering code being the lowest common factor any software developer Clean Code describes a whole bunch of principles and best practices.
There are similar books. But we coincidentally were inspired by Clean Code so that it became the initial spark for the Clean Code Developer initiative.
Finally this is not cast in stone. An even better book might be published tomorrow. Very well! But this won't change our vision of professionalism. Hence we start right away. In the sense of agile movement we won't spend too much time on planning but start doing something - a small step into the direction of true professionalism.
Here we go!