Tag: programming

eclipse with custom workspace

There are 2 ways to control the location of your workspace; using the current working directory or using the -data command line argument. To use the -data command line argument, simply add -data (your workspace location) (e.g., -data c:\myworkspace) to the “Target:” line in the shortcut or include it explicitly on your command prompt command line.

Agile metrics

i was a guest at the agile round table near boston last night. the event drew a crowd of veteran software engineers, i was the youngest in attendance by 20 years.
ken schwaber outlined his and jeff sutherland’s SCRUM approach, which struck me as interesting and worthwhile to follow up on.
jeff sutherland, CTO of patientkeeper, demonstrated how he manages his teams of developers with GNATS. jeff figured that developers loathe red tape, and had the goal to limit the effort required to 1 minute per day for developers, and 10 minutes per day for project managers.
and he was not using gantt charts to achieve this either. calling gantt charts totally useless for project management beyond giving warm fuzzies to the client, he explained how he leveraged their bug tracker to double as a means to keep track of effort.
each morning, developers review their tasks and update the work remaining estimates which have a granularity of one day. the project managers, in turn, analyze the reports that GNATS automatically creates. reports such as number of new tasks vs closed tasks, total work remaining and other metrics that can be derived from the task data.
tasks are the cornerstone here. jeff was able to demonstrate to the business side that the high level business goals were off by 100% with their effort estimates, while the low-level tasks achieved an accuracy of 10% on average. this led to enthusiasm from all parties to drill down on any project and get to the task level ASAP to get meaningful estimates. and, like psychohistory, project management is inherently stochastic.
nowhere to run, nowhere to hide
the level of transparency of this system is unprecedented. with everyone in the company able to see on a daily basis how much work was remaining and what the roadblocks were, the initial fears that developers would be pounded on by management turned out to be unfounded. instead, the transparency enables everyone to do real-time adjustments and to detect problems early, which has taken a lot of politics and second-guessing out of the equation.
when analyzing a project, jeff focuses on burn down, the part of a release where open tasks are relentlessly driven down to 0 by a joint effort of developers and business people. the corresponding graphic (roughly a bell curve) illustrates the importance of the burn down nicely, adding weight to jeff’s assertion that burn down is the only thing that matters to get a release done in time.
which prompted me to ask for advice on how to drive an open source release as a release manager. people are not exactly required to do your bidding, but metrics may help there too. collect these useful data points, as the bugzilla-bitkeeper integration is doing, and let them speak for themselves. peer pressure and pride in workmanship will take over from there. that’s the idea anyway..

Eclipse live diff

You can now configure your text editor to show changes from the latest revision in the CVS repository. Not only can you see your changes, you can back out of them without leaving your editor. You turn this feature on with the Select Quick Diff Reference command found in the context menu for the left-hand ruler of a text editor; choose Latest CVS Revision.

in eclipse 3.0 M4
plus, you gotta love their sense of humor: While “The Terminator” has been formulating his conquest of California, the Eclipse team has managed to remain undistracted and come through with their fourth milestone build of the Eclipse 3.0 development cycle.

Mindmap to outline

continuing with my mindmanager x5 experiments, i wrote XSLT that converts the native mindmanager xml format to OPML. as it turns out,
if you disregard the presentational information that mindmanager stores for each node, the 2 formats are quite alike. it was very easy to convert from one to the other.
i have yet to do the inverse, opml2mindmanager. i guess i could figure out the minimal requirements for the mindmanager xml representation, but i will probably wait until mindjet releases their mindmanager x5 developer docs. you’d want to round trip to make this useful beyond satisfying your inner geek.
i always liked outlines, being very much a list person, but when i discovered mind mapping software, something clicked. i realized that i could harness latent visualization skills to help with retention of ideas. my clumsiness with analog media had prevented me from experimenting with mind maps earlier. not so with mindmanager.
the biggest improvement of mind maps over outlines is the ability to relate nodes in a mind map to each other. also of interest, embellishing a mind map with visual clues. i know that some outliner let you attach links to a node, but unless i am missing something, there can only be one link per node.
i am not yet sure what i will use this XSLT for. here are some ideas:

  • export mind maps as outlines (obvious)
  • annotate imported OPML blogrolls
  • prototype sitemaps (though i am not sure if any CMS besides the userland products uses OPML for that)
  • aggregate with other XML data (RSS, FOAF etc)

mindmanager ships with some XML aggregation samples, such as the ability to associate RSS feeds with certain nodes in the mind map. upon first glance, it struck me as a toy, but i am sure they are only scratching the surface there. mac users have had software to correlate feeds, contacts, bookmarks, pictures etc for a while, but i am not sure if these products hit a sweet spot just yet. then again, they exude cool, and that is reason enough 🙂
i am pretty confident that interesting stuff like XTM support will fall into place quickly once mindjet builds upon it’s quite active community and encourages it to innovate. being of the geek tribe, i am not very often prepared to pay for software (with all the open source solutions out there), but i gladly pay for mindmanager.
anyway, let me know if you think this is hot area, or have ideas for exploration.

Primate programmers

Humans and higher primates share 97% of their DNA in common. Recent research in primate programming suggests computing is a task that most higher primates can easily perform. Visual Basic 6.0 was the preferred IDE for the majority of experiment primate subjects.

but..

What are the issues regarding open source programming?
Hominids will not share source code and can be very territorial when programming. For this reason we do not recommend Primate Programming for open source projects.

PPI

Semi-structured data pipelines

the cocooners are musing about a filesystem that is aware of semistructured data.

Imagine having an XSL processor in the kernel:
You could “execute” .xsl files, bypassing having to run a processor manually.
prompt$ page2html.xsl < input.xml > output.html

this jibes well with the notion of making xml the default programming model, something i would like to see (i like xml much more than java 🙂 i wrote about this 2 years ago. damn, has it been 2 years already.