John Vlissides

John Vlissides passed away on Thursday, November 24, 2005 His work on software design left an unerasable mark in my professional life.


Skillful software design and the scientific method

Many professionals have observed the commonality between skillful software design and the application of the processes of science —also known collectively as “the scientific method”: The mapping of hypothesis with an initial design, experimentation with emergent design and the general style of closed-loop feedback control processes. If someone say “this is a very important software…


Helping others with software design

Prescriptive help has its place in organizations, no doubt. Looking for other words for the prescribe verb come two groups of words with different connotation: dictate, rule, specify with authority, decree, force, control, ordain, order, command, oblige. When there are precepts for the well being of any given organization, prescriptive points make sense. The other…


Code is model – it depends on the code, of course.

Is this paragraph poetry?That depends on a number of properties in it.If it has the properties from the literature body of knowledge known as poetry, then it is poetry, of course. If not, well it is something else.The same with code and modelCode is Model


CLR v2.0 Array.ForEach and List.ForEach

Consider an array of strings: string[] strs={“uno”, “dos”, “tres”}; Consider a method like: static void shows(string s){  Console.WriteLine(s);}Invoking that method for each string in the array, one way:foreach(string s in strs)  shows(s); There is need to invoke different methods other than ‘shows’ for the entire array, then consider:delegate void process_string(string s);void process_array(string[] strs, process_string amethod){  foreach(string s in…


I like it even more!

There is one thing that I like even more than writing code and that is: the code were be useful for somebody. This is just another aspect of good design, to elegantly and efficiently solve user’s problems. Hence the need for systematic methods of design, with closed-loop feedback processes that adapt and approximate to the…


I like it!

I like to write code. Reflecting about what this activity of design and programming trigger on me, I see kind of “a fundamental feeling that is hard to define but that people desire to experience”, also known as “pleasure”. A song by Dee Snider and Twisted Sister rock band comes to mind: “It’s only rock’n’roll”,…



A fellow team member sent to me this quote, and it makes me wonder how people-oriented our beloved profession of computer programming is. “The competent programmer is fully aware of the strictly limited size of his own skull;therefore he approaches the programming task in full humility, and among other things he avoids clever tricks like…


The growth of a feature

For some time I have been looking for the time to post a general picture of the design and programming approach I have been trying in several projects, the life-cycle for a single feature would be depicted like this: The main points here are: Functional capacity is accumulated and maintained in time as iterations are…


Traincraft manifesto

Recently I saw this film:The Recruit It portrays an organization with very, very high standards for its applicants and how they get trained for active duty, where staff members face extraordinary challenges and brutal circumstances of colossal complexity; yet, every staff member should be skilled enough to overcome them all and stay alive. There is…