Friday, September 24, 2010

Plan-based vs. Agile -- Explanation with Control Theory Metaphore

Some of my students and colleagues with electrical engineering background found the following explanation useful to distinguish plan-based and agile methods.

First and foremost, I think a more accurate distinction is that methods exist on a continuum from predictive to adaptive (see Boehm). In this continuum predictive methods focus on planning the future in detail, in contrast, adaptive methods empasize adapting to changes quickly. So, in the following I use the plan-based as a synonym to predictive, and agile as a synonym to adaptive approaches.

To emphasize the differences of the plan-based and agile approaches I use control theory analogy in the following. Plan-driven methods are similar to open-loop control systems: at the beginning of the process the desired output (desired product) is defined, then the controller (development coordinator) determines the necessary inputs (development plan) for the system (development team) in other to that realizes the output (product). So an open-loop control system determines the input using only the current knowledge about the desired output. It means that the system does not observe the output of the process that it is controlling. Therefore, an open-loop control system can not engage in machine learning, cannot correct any errors that it could make, and it also may not compensate the disturbances that influences the system. Open-loop control system is useful for well-defined control systems (development situations) where the relationship between input and the desired output are well known.

Unfortunately, only one thing is usually constant in software development situations: the change. The changes are emanating from different sources, for example, changes of customer requirements, business goals, and technological demands. Consequently, these software development processes should respond to these changes by adapting its execution to the changed situation. Continuing the previous analogy, we can characterize agile methods as closed-loop control systems: additionally to the open-loop control system the disturbances (changes), which affect the system, are measured by different sensors (development reviews) that are transferred to the input of the controller (developer coordinator) in other to the input of the system (development plan) can be adapted to the changed situation. In agile methods, actually, there are typically three planning levels -- therefore three feedback loops -- in the process: daily-, iteration- and release plans to adapt the development process at (roughly) daily, weekly and monthly plan-levels. The intuitive mapping of agile methods to closed-loop control system can be seen in the next figure.

Interpreting the previous mapping on the Scrum method, the method can be visualized as in the next figure (Please note, the daily loop is not shown.).

Wednesday, July 21, 2010

How to Sync Outook 2007 Calendar Meeting Requests with Google Calendar?

Using Google Calendar Sync, Google Calendar can be synchronized with Outlook 2003 and 2007 Calendar (see the compatibility issues).

Generally, it works fine but annoyingly Outlook's 2007 Meeting Request entries can not be transfered to the Google Calendar... (It is important for me because I would like to look at my calendar entries on my Android based HTC on the move.)

I searched for a solution on the Internet, but I only found solutions that didn't work in my situation. But finally, I used the old greek 'try-and-error' principle and found a working solution to this problem in WinXP SP3 + Office 2007 context:
  1. Download and install Google Calendar Sync
  2. In the configuration screen (where you can set your Google account and the Sync option - later it can be also run from the Taskbar using the Google Calendar Sync icon) you should set your original Google email address (that was created first when you created your Google account,
  3. In the Calendars tab in the Google Calendar Settings you should add your email address that is used in MS Outlook 2007 using the Shared: Edit settings link.
... and it works fine and I am happy because now I know where and when I should arrive...

Tuesday, July 13, 2010

Connecting to an unnamed wifi with HTC Hero and HTC Desire

I tried to connect to an unnamed wifi network with a HTC Hero and a HTC Desire and they couldn't find the network despite of the fact that I entered all the necessary connection information. Then I revealed the name of the network and the connections were established. After I covered again the name of the network they could still establish connection. So, the solution is to reveal the name of the wifi network for the first connection after that you can hide it again to restore the original state of the network. It works both on Android 1.5 and 2.1 OS.

Friday, July 9, 2010

A problem and a solution using elsarticle.cls

I tried to resubmit one of my revised article to the Elsevier's Editorial Team and the following error occurred which hindered me to resubmit it:

Package pdftex.def Error: pdfmode expected, but DVI mode detected!
(pdftex.def) If you are using 'latex', then call pdflatex'.
(pdftex.def) Otherwise check and correct the driver option. Error
recovery mode by switching to PDF mode.
See the pdftex.def package documentation for explanation.

This error was really annoying, since the deadline was very close...

Fortunately, after some hours inspection, I found that the cause of the error was that the 'pdftex' module was changed in the editorial system. The new version of 'pdftex' now tries to detect if the pdf mode is set correctly in the document. (I didn't bother about it before as everything was fine.)

In other to help 'pdftex' in the decision (it believed that I wanted to use DVI mode but I didn't) I put the '\pdfoutput=1' line just before the document class definition:


So now, everything goes fine as previously.

Monday, May 10, 2010

Agile Warm-up Videos

Some of my friends and colleagues asked where they can find useful resources for grasping the importance and usefulness of agile development. I found the following videos very determined in the first round to the theme:

Title: Agile Retrospectives: Making Good Teams Great!
Speaker: Esther Derby and Diana Larsen
Title: Agile Development Teams: Scope and Scale
Speaker: Mike Cohn
Title: Agile Estimating with Planning Poker
Title: Bay XP Meeting Part 1: Agile Estimation
Speaker: Mike Cohn
Title: Bay XP Meeting Part 2: Agile Estimation
Speaker: Mike Cohn

Title: How To Plan Projects With Distributed Teams
Speaker: Hubert Smits
Title: The role of leadership in software development
Speaker: Mary Poppendieck
Title: The Road from Project Manager to Agile Coach
Title: Managing your Scrum Product Backlog in a simple Excel
Title: Agile User Experience
Speaker: Declan Whelan