Scrum

February 26th, 2009 • 2 Comments

I have always been a fan of improving software development processes. The last couple of days I had a deeper look into Scrum. I worked with Agile development methods for some time now, and I like to point you to this scrum link from Softhouse: http://www.softhouse.se/Uploades/Scrum_eng_webb.pdf. Very rough, but gives a nice overview.

Here is a slideshare version:

Learn Scrum Engineering in 5 minutes

View more presentations from guest035e0d. (tags: scrum engineering)

OSGi dependencies

November 25th, 2008 • 1 Comment

I have been a great fan of pushing the degree of automation to a limit. And as stated in this blog post: Software engineering and as a follow up of OSGi dependencies and OSGI  Best practices: I now present  the consistency and OSGi dependency checker :-)

The setting is a multi modul maven project for a OSGI based application – with all the nice maven features turned on (reports (all kind off), scm, issue tracker, mailinglist, etc) – so to speak of a complete Software Development Environment.

The broken window principal says:

"Consider a building with a few broken windows. If the windows are not repaired, the tendency is for vandals to break a few more windows. Eventually, they may even break into the building, and if it's unoccupied, perhaps become squatters or light fires inside.
Or consider a sidewalk. Some litter accumulates. Soon, more litter accumulates. Eventually, people even start leaving bags of trash from take-out restaurants there or breaking into cars."
Source: wikipedia

And to prevent the broken window principal I implemented a small tool doing some of this stuff:

  • Checks what kind of dependencies are available between the OSGi Bundles
  • Detects cycles (which is bad :-))
  • Looks for unused imports and exports

As a result you get e.g. a report and a graph.

deps

The second part of the tool is maybe even nicer :-) Beside all the good reports and tools you can use like findbugs, pmd, checkstyle, and others; sometimes I’m missing the very basic stuff. I implemented some consistency checks which can check for the following stuff, and verify the consistency of your project:

  • Look if all needed Unittests are available
  • Look for old unused code
  • Look for old empty packages
  • Test  if the 80% code coverage mark is reached by the Unittest (and if methods are tested for sanity, failure, and success)
  • Look for files which are not included in the binary build (they might be obsolete)

You could integrate those checks in the build systems or even force them on checkin like svnchecker does. Or you can use it to generate reports.

Visualization

October 17th, 2008 • Comments Off

Ever heard of Ben fry? No? – You should :-) he did some great stuff with visualization. For example visualizing the pacman source code. Or a tool for visualizing the evolution of software projects in revisionist. He has some other great stuff on his homepage. Also interesting is the tool processing, which is also used in code_swarm. Some samples of his data visualization:

Valence revisionist

OSGi best practices

October 17th, 2008 • Comments Off

I’ve been working with OSGi for the past years – and I must admit I really like it. If you follow some best practices rules your applications are definitely going to perform better and look nicer. Therefor I remembered an presentation about best practices when using OSGi. I have almost nothing to add – See for yourself: OSGi Best Practices!

OSGi dependencies

October 9th, 2008 • Comments Off

I like the OSGi platform, and I have been using it for quite a while. One of the most important things is to keep track of your dependencies (e.g. like preventing cycled dependencies). Auto-generated MANIFEST.MF files are most of the time not really optimized. Therefor I started writing some python code to check dependencies. 

 It reads in all the MANIFEST.MF files from the bundles and creates a dependency graph. It will look for unnecessary and unneeded imports and exports. Look for cyclus etc. It is written using the networkx library for python. Also useful is the zipfile extension in python :-) It can be used to extract the jar files of bundles.

Page 4 of 41234