Friday, January 25, 2008

Article Notification: The Impact of Component Modularity on Design Evolution: Evidence from the Software Industry

This paper interested me and I thought it might interest others.

Title: The Impact of Component Modularity on Design Evolution: Evidence from the Software Industry
Authors: Alan MacCormack, John Rusnak, and Carliss Y. Baldwin

Executive Summary (from the site):

What factors should influence the design of a complex system? And what is the impact of choices on both product and organizational performance? These issues are of particular importance in the field of software given how software is developed: Rarely do software projects start from scratch. The authors analyzed the evolution of a commercial software product from first release to its current design, looking specifically at 6 major versions released at varying periods over a 15-year period. These results have important implications for managers, highlighting the impact of design decisions made today on both the evolution and the maintainability of a design in subsequent years. Key concepts include:

* Data show strong support for the existence of a relationship between component modularity and design evolution.
* Tightly coupled components have a higher probability of survival as a design evolves compared with loosely coupled components.
* Tightly coupled components are also harder to augment, in that the mix of new components added in each version is significantly more modular than the legacy design.

Tuesday, January 22, 2008

I just found the most astoundingly useful web tool. There's a free 30-day trial and I highly, highly recommend that everyone take it for a spin. It is, essentially, an intuitive structured-note taking tool. It appears to create notes in a tree-based structure, with node types which correspond to projects, goals, tasks, notes, meeting agendas etc depending on your chosen template.


Thursday, January 3, 2008

Developing for userspace (linux-focused)

On great Python utility is virtual Python. It is a script which will take your system Python install and leverage that to create a Python binary in your home directory. The advantage is that you can then install all kinds of third-party libraries without (a) root permissions or (b) messing up your primary installation.

It can be used to create several different "homes" for Python, which could let you experiment with library version, install procedures or a variety of other things.

More people should develop for userspace.

I was recently trying to install C#, something which I would love to learn. On linux this means mono. On a standard operating environment without root priveleges, this means a *lot* of dependencies (due to old versions of Stuff) and a lot of compiling.

It would be great if RPM (and apt, or pick-your-favourite-installer) could handle the idea of a userspace package repository. Maybe they can and I don't know about it, but I've not seen any information on the topic. Things that get installed should have a userspace option. If I want to grab the latest gnome, mono and C# libraries into user-space without root priveleges, I should be able to. I should be crippled just because I'm not root. It doesn't seem beyond the capacity of linux to allow users to do this, since it already supports the userspace paradigm very well.