Team Foundation Server from within Eclipse

Posted on August 4th, 2009 by HAT

I was trying to integrate a Java project with TFS, using Eclipse and Teamprise. Teamprise is a suite of client applications that includes an Eclipse plug-in for accessing Team Foundation Server.

In general the plug-in works remarkably well (in fact, I think it works better than Visual Studio with Team Explorer!). It’s really stable (thanks to Eclipse) and several options are easier to access than in Visual Studio.

Pros

Integration with the source repository is complete and limited only by TFS (you can still use the Team Synchronizing perspective or you can use the new ‘Pending Changes’ view). Some particularly interesting characteristics are the shelving feature, check-in policies, and the ability to associate changesets with specific tasks, bugs or any other work item type, providing a higher level of traceability. You can develop and deploy your own policies, although you have to install them in all clients.

Read more »

A change in focus for Software Engineering

Posted on July 29th, 2009 by Santiago Ceria

soft My friend Hernán Wilkinson sent me a link to a blog post that included a reference to a very interesting article by Tom DeMarco. Just as a reference, De Marco is one of the classic authors in Software Engineering. When I studied systems analysis more than 20 years ago, his book on Structured Design was like a Bible.

I agree with almost everything he says there, but still I think that he takes it too hard against his own work, and I want to relate this to my previous post, because what he proposed in “Controlling Software Projects” is something that even in 1982 didn’t work in all software development projects, although from what he says it looks like he didn’t realize that at that time. But the key is that they worked in many software projects: in the types of projects that DeMarco was involved in then. So, probably his mistake was not to mention in what types of software development projects the techniques he was proposing had proved to be effective or were important in relation to what they were trying to achieve. Also, it’s easy to say now that some things proposed 27 years ago are not true anymore. Just as an example, “The Mythical Man Month“, Brook’s classic essays book that is a must for any software professional, has many things that are plain wrong if tried to applied nowadays, as Brooks himself recognized when he said “Parnas was right, I was wrong”.

Read more »

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

Posted on June 29th, 2009 by Santiago Ceria

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.

Read more »

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

Posted on June 26th, 2009 by Juan Navarro

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.

Read more »

Is Autonomic Computing a new era in Computer Science?

Posted on June 17th, 2009 by Santiago Ceria

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.

Read more »

TDD vs After Testing (1/2)

Posted on June 16th, 2009 by HAT

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 …

Read more »

Microsoft Research Faculty Summit 2009

Posted on May 18th, 2009 by HAT

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.

Read more »

To The Great Master With Admiration

Posted on May 18th, 2009 by Santiago Ceria

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. ”

Read more »

Agile Methods Versus CMMI?

Posted on May 7th, 2009 by Santiago Ceria

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.
Read more »

Continuous Integration

Posted on May 6th, 2009 by HAT

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?
Read more »