Archive for May, 2009

Microsoft Research Faculty Summit 2009

Monday, May 18th, 2009

Last week I attended the event “Microsoft Research Faculty Summit 2009″, invited by my friend Pablo Michelis. The event was held in a quite impressive complex, the Sofitel Cardales Reserve. It was very well organized and on the first day it had the presence of the highest authorities of the country: the President, the Governor of the Province of Buenos Aires and the Minister of Science, Technology and Productive Innovation. It is indeed great news that an event like this is organized in Argentina.

I want to comment on a very interesting panel that I was able to attend on Wednesday afternoon. The panelists were Alejandro Cecatto, Deputy Minister of Science, Technology and Innovation; Jorge Aliaga, Dean of the Faculty of Exact and Natural Sciences of UBA; Flora Montealegre Painter, Head of the Science and Technology Division of the IDB and Clovis Baptista, Director of Science and Technology of the OAS. The Moderator, Daron Green, Senior Director of External Reserarch of Microsoft Research, did an excellent job of keeping focus during the debate.

(more…)

To The Great Master With Admiration

Monday, May 18th, 2009

I have great admiration for some people who helped build our discipline, Software Engineering. Fortunately, many of them still are doing it.

Without any doubt, the first one on my list is Fred Brooks. Author of the most popular book in the history of Software Engineering:  “The Mythical Man Month”, author of the most cited paper in the history of Software Engineering and perhaps Computer Science: “No Silver Bullet”, technical leader of the largest software development project in history (OS/360), recipient of the most prestigious awards in Computer Science: Turing Award, ACM Alan Newell Award and countless others (see http://www.cs.unc.edu/~brooks/ feel a bit overwhelmed). Is there anyone else in our discipline who has been both a great leader in Industry and a prestigious researcher admired to the point of winning the Turing Award? Probably not. Following another genius as Don Knuth, who said “If you find that you’re spending almost all your time on theory, start turning some attention to practical things, it will improve your theories. If you find that you’re spending almost all your time on practice, start turning some attention to theoretical things, it will improve your practice” Brooks is in a place of privilege. He experienced at first hand the difficulties of having to lead a huge development project at a time when the tools available were very limited. And he had the greatness to acknowledge his mistakes and even to document them in “The Mythical Man Month.” To give you an idea about how humble Fred Brooks is, he once said at a conference talking about JCL (Job Control Language) that it is “the worst programming language every built, by any group, for any purpose. And it was done under my management. ”

(more…)

Agile Methods Versus CMMI?

Thursday, May 7th, 2009

It was logical that my first post on the Hexacta blog would be on methodology issues, since this is what I’ve been doing for so many years. And one particular issue that remains very relevant these days is the evolution of agile methods and their contrast with the methods that result from applying models such as CMMI.
On Monday March 18th I was invited to participate in a debate titled “CMMI versus agile methods?” Before the debate, there will be a lecture by Jorge Boria with a very interesting title: “Waterfalls versus Agile and other nonsense”. I don’t know exactly what Jorge is going to say, but the title is very true: sometimes there are false dichotomies that end up being nonsense.
(more…)

Continuous Integration

Wednesday, May 6th, 2009

The Continuous Integration methodology has become very important in the software development community and this is probably due to the effects of agile methodologies. On teams that have adopted such methodologies, continuous integration is one of the pillars of agility, ensuring that the entire system runs correctly on every build, even with numerous teams and high frequency of changes. But, why should we use continuous integration? What are the benefits it can provide?
(more…)

Test, test and test (I forgot … More test!)

Wednesday, May 6th, 2009

We are already able to say that a software development without automated testing is unacceptable. We can distinguish among unit, functional, integration and more, but the idea of automating is great!!! If we focus on unit test we will see that it is apparently easier to implement, although it is not trivial to be able to do testing that truly tests the functionality and, even better, that can be almost complete. TDD and “First Test” help to make all this even more believable (for unbelievers) and further encourage those who live it as an act of faith.

As a first post of automated tests, we could identify (among many things) some advantages of this practice:

  1. All tests are regression tests.
  2. The continuous integration makes better tests.
  3. We lose the fear towards code refactoring.
  4. Agile development is successful because of the tests.
  5. Those who test the code with a “main” to see if it is working … What is the difference between that time and writing a real test that will also help us throughout the project?
  6. We know exactly which change caused a compatibility bug (instead of knowing in what month it occurred).
  7. No need to remember the whole code. If you forget what the subject was, you can go and see the tests for that functionality.
  8. The design of the application tends to be better and less decoupled.
  9. You go to bed with peace of mind! You know the code you touched did not break anything (that has tests).