Archive for June, 2009

Why do we keep searching for unifying theories for software development?

Monday, June 29th, 2009

I want to come back to the discussion about Agile vs. CMMI. After a presentation about the subject in UTN (National Technological University) in Córdoba a couple of weeks ago, I started thinking a bit differently on the subject. I thought that instead of asking the question “Are CMMI and Agile Methods compatible” the important question is “Should CMMI and Agile Methods be compatible?”

In other words, if they are not compatible, so what? Isn’t software development an incredibly wide field so as to need different approaches to different problems? Didn’t for example Management benefit during its evolution from new theories that presented different points of view about how organizations should be managed? CMMI and Agile methods present many incompatibilities (at the CMMI practice level and not at the goal level), and one of the reasons is that they follow different management theories.

(more…)

What will be the impact of Sunday’s election on the software industry in Argentina?

Friday, June 26th, 2009

Well, in my opinion, not much.

Throughout its recent history, Argentina has been characterized for big swings in economic policies which in turn have affected -positively or negatively- many sectors in the economy. Changing political parties, or even leadership within the major party in the country -the PJ-, have changed the “rules of the game” over and over again.

In the 90’s local manufacturing suffered extensively from an artificially overvalued currency. With the new millennium, and a cheaper currency, Argentina became competitive in many sectors once again. One of these sectors was the software industry.

(more…)

Is Autonomic Computing a new era in Computer Science?

Wednesday, June 17th, 2009

Five years ago, David Garlan visited Argentina for the first time and gave a lecture at the School of Computer Science at UBA about one of his research subjects: Self Healing Systems. That concept was new to me and to many attending the conference, and sparked a lot of curiosity. Basically, what Garlan was proposing is that increasing complexity in systems and other factors make it necessary to have self repair and self optimizing mechanisms, considering that human intervention will be more and more difficult due to how difficult it will be to diagnose what is happening with a system and apply a repair to fix an anomalous situation. As I kept reading more about the subject, I realized there’s a lot of research going on about it, and that many consider this a new era in computer science: the fact that systems decide changes in their behavior to adapt to faults or changes in their operating or user environments, without human intervention. Autonomic Computing has a lot to do with other interesting topics such as context awareness and task based computing.

(more…)

TDD vs After Testing (1/2)

Tuesday, June 16th, 2009

tdd From the perspective of someone who practices Test-Driven Development, this gets things backwards. I believe that it is an essential part of Test-Driven Development that you must write your unit test before writing any application code. Why does it matter?

Test-Driven Development is first and foremost an application design methodology. If you write your unit tests after you write your application code, then you are not driving the design of your application with your unit tests. In other words, Test-After Development ignores the Driven in Test-Driven Development.

Let’s consider a concrete scenario …

(more…)