Hitchhiker's Guide to Software Architecture and Everything Else - by Michael Stal

Friday, May 26, 2006

Agility and the Borgs

I have been a trekkie for a long time. Maybe, because software engineers are more open minded for this kind of SciFi movies and series. In the EXPO-C conference in Karlskrona, Sweden, Jimmy Nilson and me were participating in some Open Space events after the conference day. If you wonder what an open space is about: the goal of an open space is to meet people and discuss interesting topics. For this purpose, everyone can add her/his topic to a poster hanging on a wall. Then for each of these topics people are asked to participate in meetings that take place for a fixed amount of time. It is allowed to leave a group and move to another one (if you weren't the one who came up with the topic). Works very fine to get input and feedback from smart people. In Karlskrona we discussed topics such as "when is simple too simple", "agility", "what does it need to edutacte architects", just to give you an impression. After one of those "agile" topics I was wondering how these agile processes apply to Star Trek. Strange combination of topics, you might think now. One of the points discussed at the conference was whether hierarchical structures are suitable for agile processes. Thus, I asked myself what kind of process paradigm the Borgs are using. As you know, the Borgs are known to be very rude, assimilating other creatures to integrate their knowledge and making them robots without any own will. The Borgs are controlled by a central instance - the queen - but are tightly integrated to a community of heavily communicating and interacting creatures. It seems as if the queen is in charge of providing central goals but Borgs are able to achieve these goals by any means they consider appropriate. For now, we recognize that Borgs use communication and interaction, share their knowledge with each other, can interoperate independently as groups but not as individuals, continuously share their knowledge and abilities, strive for common code ownership. It is not obvious from the series if the Borgs follow a BDUP approach or are able to refactor and refine their work in the typical case of evolving and changing requirement. However, their behavior suggests that they are capable of fastly adapting to changing contexts. Take their ability to modify the frequency of their protection shield as a prominent example. So, does the society of Borgs constitute an agile organization or do they follow a waterfall model or a kind of hybrid approach? From my guts feeling, I always thought that agility requires smart and autonomous developers who organize themselves in a P2P fashion within a project. Do hierarchies, central organization and agility denote concepts that can be combined or do they contradict themselves. Is there a dependency between organization and process paradigm? Are there any contexts in which agile processes are inappropriate. If agility means the ability to constantly adapt to changing environments and requirements, then the Borgs obviously denote an agile organization. Even in an agile process someone needs to set the goals, coordinate all activities, and control the process. Why are the Borgs so successful, anyway?


  • You might find this interesting http://www.aleph.se/Trans/Global/Posthumanity/WeBorg.html it takes your thoughts a bit further in a more general sense.

    More interesting is a great quote from wikipedia which brings to mind the question of the scalability of the borg's hive mind.

    "The hive mind, hovever, has its limitations. In every Borg episode, Borg drones react so slowly to incursions that they oftern don't respond to an enemy soldier until he actually destroys something or attacks somebody. In Q Who, the cube just sat there trying to decide what to do, waiting for so long that the Enterprise's crew was able to hold its own meetings, decide what to do, and then explore the Borg ship! In fact, the only time that we ever saw the Borg react and move quickly was "Descent", when they were not part of a collective. This is due to the inefficiencies of the hive mind and other similar symmetric multi-processing systems. (SMP while being great at some tasks unfortunatly introduces extra overhead as a side effect; the inability of trillions of minds to equal Voyager's holo-doctor shows every indication that they have reached and then surpassed a scalability limit, thus explaining why they react so slowly)."

    The borg would in fact be with their singular hive leader quite non-agile. In order to be agile they would have distributed themselves into smaller teams with boundaries in order to prevent the SMPish scalability problem. My guess is that they would eventually become something along the lines of an island model.

    Thanks for the interesting thoughts :)

    By Anonymous Greg Young, at 4:58 AM  

  • I guess the Borg model has some interesting implications. To know these characteristics means to know the weaknesses. I am wondering whether the Borgs have ever assimilated an agile civilization ;-)

    By Blogger Michael, at 10:38 AM  

Post a Comment

<< Home