Reflective developer

…or why I see no authority in traditional certification exams? I have followed authority and I am aware of the value of doing that, so much so that today I still look forward to follow authority. A serious problem is precisely that there is no grounds to hold any longer the belief that the mindset…


Aesthetics in software design

Designing software, like many other interesting activities, involves both science and art [Knuth74]. The activity, therefore, has objective and subjective aspects. The objective and subjective have each their due prominence. Objectivity predominates in science while in the arts predominates the cultivation of subjectivity. Cultivating subjectivity implies to investigate it, both our own and that of…


Inspiration for test-driven design?

What could possibly inspire someone to take test-driven design (TDD) more seriously? I can only tell about what kind of experience has inspired me: (1) the act of watching someone doing TDD with dexterity. (2) Observing the quality of the outcome in relation with its requirements and specifications. (3) Checking out the pace of work…


Egoless architecture

What is architecture? Which could be the shared properties among diverse schools of thought and practice of architecture? Complexity management is possibly a common property among these kinds of design disciplines. Such complexity is present in many respects; some are of essential complexity, some of accidental complexity; some are about people interaction, some others about…


Good programming styles

A presentation by Bjarne Stroustrup, creator of C++, about good programing styles. This presentation was dedicated to Dennis Ritchie, creator of C. Note of relevance: The C programming language, in one way or another, is at the bottom of all existing computing. Day 1 Keynote – Bjarne Stroustrup: C++11 Style


Empirically controlled?

The creation of software-based business solutions, also known as application development, could benefit a lot from specific kinds of development processes; in particular those controlled empirically, like those with an iterative and incremental kernel inside, like Adaptive, Crystal Clear, DSDM, Scrum, FDD, Lean, XP, and others. What does it possibly mean to be empirically controlled?…


Further steps in theoretical groundwork for software development

Time ago I posted about the obsolescence of some theories for project management (The underlying Theory of Project Management is Obsolete) and, hence, about the need for better theories not just for management. In my journey as a software professional, to the extent that I was becoming aware of how important is the theoretical effort…


Architecture and empowerment

How bad could organizational hierarchies be for the advance of professionalism in the business of software creation? In particular, command and control organizational hierarchies derived from misinterpretations of the concept of ‘governance’. I suggest that the advance of professionalism should be part of the strategic interests of a business for both, the short and the…


Measure of trust

Building trust is precisely what I look for when I think about adaptive development in general. We, as creators and as consumers of software, need better levels of trust at many levels. The directors of the European Space Agency surely wanted a better level of trust in their software after the Ariane 5 explosion (caused…


Dark Manifesto for Agile Software Development. Take 2

In addition to this: Do you think that instead of “We are uncovering better ways of developing software by doing it and helping others do it.” people tend to adopt “We are uncovering the only ways of developing software teaching others.”? Yes, I have often seen a kind of indoctrination into the new «one and…