Time-bound and context-bound code

Where the name ‘code’ for a computer program’s source text comes from? What does it mean to say “here is the code for that computer program”? Following are some associations for the word ‘code’: As a noun: a coding system used for transmitting messages requiring brevity or secrecy the symbolic arrangement of data or instructions…

1

Team efficiency and division of labor

The concept of paradigm as described by Thomas S. Kuhn is quite profound, I have seen object-oriented software design authors quote him when illustrating the difference between other methods of software design. Yet, it is an illustration taken from another context and we software people should take care not to misinterpret it. (As we have…

2

Trait of an agile environment: planning-oriented developers

When agile development still was not called agile development, there were planning-oriented technicians —professional software design practitioners, that is— in a development project team all the way from the very beginning of the project to the actual retirement or replacement of the system. A popular style for the division of labor in a development project…

4

Software architecture is much more than structure

In a recent presentation, I heard the presenter emphatically referring to someone else code as “crap”; in the same presentation the presenter started to talk about architecture —and like most of the conversations I have heard recently that include the architecture concept— clearly implied that architecture is —above anything else— about the structure (internal structure…

2

Trait of an agile environment: business people who care their project

In order to an airplane stays in the air is required an strict obedience to some physical laws and principles, for example, the principle of aerodynamic sustentation by which a higher air pressure underneath the structure of the wings happens due to a particular shape of that structure. The moment you disobey this principle, the…

0

Software development predictability

How good for doing business is to sustain conditions where customers trust their providers; one such condition is the ability to explain and predict the outcome of software development such as feature set, cost and, time to deliver. I have observed a range of approaches to achieve predictability which I would split here in two…

1

Executable design notations: Standard C++, Smalltalk and LISP

The most influential design and programming mindsets that have shaped my own frame of mind are: Standard C++, Smalltalk and LISP. Many things nowadays considered new on software design have been –in fact- already present on those mindsets since time ago. I am so glad to see people at Microsoft taking sound concepts from those…

2

Una introducción a la ciencia – Pensamiento científico y el método científico

Una introducción a la ciencia – Pensamiento científico y el método científico Por Steven D. Schafersman. Enero 1994. Introducción Para tener éxito en este curso de ciencia y, más específicamente, para contestar algunas de las preguntas del primer examen, debes familiarizarte con algunos conceptos respecto a la definición de ciencia, pensamiento científico, y los métodos…

4

Critical thinking and software design

I have consistently seen best software designers apply critical thinking ideas to their daily work, in particular, to their own design decisions. For example, I saw this: a seasoned software designer talked about why a design could be adequate for a particular area in current system under design. Then, a junior designer asked some —apparently…

1