Archive for the ‘Methodology’ Subject

“Many licenses are totally ridiculous”

Wednesday, June 29th, 2011

Linus Benedict Torvalds (Helsinki, Finland, December 28th, 1969) is the creator of Linux. Linux can be installed on a variety of devices:  mobile phones, tablet computers, routers, and video game consoles, mainframes and supercomputers. The development of Linux is one of the most famous examples of free and open source software collaboration. Normally all the underlying source code can be used, modified and redistributed, both commercially and non-commercially, by anyone under licenses such as the General Public License.

The creator of Linux tells in a recent interview to Página 12 (a recognized local newspaper) how after two decades of its creation it went from being the heart of an open source system to a friendly desktop environment and the center of Android for cell phones. (more…)

It’s the end of the world as we know it

Monday, May 9th, 2011

We are all familiar with Moore’s law. At least all of us in IT. It’s the empiric rule that tells us that every two years; advances in technology should allow squeezing the same amount of computing power in half the space, at a similar cost.
I first heard of this law when I was entering college around 20 years ago. It was the beginning of the personal computer revolution. Writing code still required punching cards (at least in my case!). Yet, that law sounded very aggressive to me and my professors of the time. People were saying that there was no way that trend could continue for more than just a few years. And here we are. The “law” is still alive and kicking. (more…)

Is Agile the next step for the US Federal Government?

Tuesday, February 22nd, 2011

A few months ago I was referred to the recently published plan to reform the US Federal Information Technology Management. You can read it at:www.cio.gov I found it quite revealing of the needs for change not just in the US Government, but probably in many large organizations.
The study points out that in the last decade, and even after investing more than $600 billion, the US Federal Government is still facing quality and productivity issues. Research has shown that many projects have become obsolete even before being deployed. To some degree, this is not surprising. Big budgets exist because issues are large and complex and involve a myriad of entities and interests. On the other hand, business needs change fast, and technology, faster. So how do you tackle an issue involving many intricate interactions and huge amounts data, when those issues and the technology available to solve them change constantly?
Much of the strategy the plan proposes is related to reducing asset investment and redundancy, by relying on cloud services that can be accessed by many different agencies. Other plan components call for human resources skills improvement in program management and procuring. The component that called my attention had to do with software development. (more…)

SEAFOOD Presentation

Tuesday, July 13th, 2010

Last month I presented at SEAFOOD 2010 a paper we wrote with Carlos Pallotti about Argentina’s Offshore Software Industry. It’s great to see how Argentina is, little by little, getting more attention in the offshore landscape. However, we are not alone: many countries around the globe are doing the same and many of them have interesting competitive advantages. Just to mention an example, Russia, the Country that hosted the conference, has a very compatible time zone with Western Europe and a very strong scientific system. I also got the impression that Argentina is somewhat ahead in the adoption of innovative Software Engineering approaches. I hope this will also help us.

I got an interesting question from someone in the audience who asked “Considering Spanish is the most spoken language in the world after Mandarin Chinese, why do you say that Argentina’s good level of English is a competitive advantage”. My answer was the typical “The most attractive markets require English”, but it left me thinking whether Argentina is using this opportunity as much as it should.

We also had quite interesting Keynotes from Ivar Jacobson, about SEMAT, from Bertrand Meyer, about Empirical Software Engineering, and from Richar Soley, about his work at OMG. The SEMAT initiative is very interesting, although it received some powerful critics. I’ll write a post about it soon.

Some of the problems I see in Agile Methods – Part 2

Sunday, November 22nd, 2009

Another problem I see in some Agile Methods is a lack of flexibility about the rules they propose. I see that as some kind of contradiction: for example, Scrum is empirical only for things that it does not define beforehand.

“Don’t change Scrum” is something that Ken Schwaber wrote in his book Scrum and the Enterprise. Here’s his rationale for this: Scrum isn’t a process that you can modify to fit your enterprise. Instead, it exposes every dysfunction in your enterprise while you build products… Whenever people change Scrum, it’s because they’ve run into a problem, dysfunction, or conflict that they do not want to face and fix. Instead, they change Scrum so that the problem remains invisible and remains deadly to the enterprise. If you allow this to happen, you will have lost Scrum’s primary benefit”.

(more…)

Some of the problems I see in Agile Methods – Part 1

Tuesday, November 10th, 2009

First of all, I admit I do not consider myself an expert in Agile Methods. Yes… I’m a Certified Scrum Master and I’ve been involved in several agile projects. But let’s say I don’t know enough and have enough experience to consider myself an expert. Even with this, I will dare say which are the issues that I don’t see addressed correctly in these methods, or at least in the typical “Scrum + XP” combination that used in most cases in Industry. The risk here is that someone will quickly reply with a link to explain how these issues can be solved. Oh well… I’ll take that risk.

I also want to say in advance that in general I have a positive view on Agile methods. I think they are an interesting packaging of useful practices and that they have made a huge contribution to development practice in general. I also value some new practices like TDD and Continuous Integration that have provided smart answers to increasing challenges of software development.

(more…)

Co-evolution – Brooks did it again

Wednesday, October 21st, 2009

In a previous post I commented about Fred Brooks’ great conference when he received the Turing Award. He named it “The Design of Design”. In that conference he spends a lot of time discussing life cycle models and explaining why the Waterfall model is wrong (“dead wrong” as he calls it). And he also presented what he thought was a better model: the co-evolutionary model, attributing it to Maher and Cross. In this model, from a Problem P1 you get a Solution S1. And from P1 and S1 you get a new problem, P2. And from P2 and S1 you get a new Solution, S2. This simple concept explains that the problem and the solution evolve in parallel. And it’s one of the good things that Agile Methods have adopted. If you use agile methods, your lifecycle model is not only iterative and incremental. It’s also co-evolutionary. Let me explain this better.

(more…)

Significant Design Up Front, When?

Tuesday, August 25th, 2009

So in my previous post I said that nowadays there are fewer cases when building models before building the actual code of an application makes sense. In which cases does it make sense? More explicitly, in which cases should we spend a significant amount of time creating architecture and design models before we run to code? Let’s ignore for a while safety critical applications and “for other reasons very critical applications”, the easy answer to the question (I know that more and more applications are becoming critical, but still I want to focus on the other ones, at least for this post). My question is equivalent to asking “when do we need significant design up front”?

(more…)

A change in focus for Software Engineering

Wednesday, July 29th, 2009

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

(more…)

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…)