Insights and outlooks on software development

S'true

Disable 3d effects in OpenSuse

Sunday, December 28, 2008 by Thomas L

I'm playing around with OpenSuse 11.1 in a VMware installation, and tried to get the 3d effects (i.e. Compiz Fusion) running under Gnome, to get the wiggly windows and other goodies. Sadly it didn't work for me, due to either VMware not exposing a 3d graphics card to the Suse installation or my MacBook's lousy graphics card. After switching I got a white desktop that couldn't be changed, and there were not a good way for me to disable it again. For other readers, here's how to disable the 3d effects without GUI:

  • Reboot and start in recovery mode
  • Log in as root
  • cd /home/{user}
  • rm -rf .config/compiz
  • Reboot in the normal fashion

Now all Compiz settings are reverted, and everything works as per the default settings.

Technorati Tags: ,

On me

Tuesday, December 23, 2008 by Thomas L

So, I noticed that I need to update my presentation somewhat. It's been a while since I wrote the Hello World blog post, and avid readers might have seen the New job post. Summing up, this is who I am and what I do.

My name is Thomas Lundström. I am at the time of this writing 29 years old and live in Malmö in the southern part of Sweden. I work as a consultant at Softhouse, one of the best software development offices in the region of Skåne. The last years I've mostly done work in the tech lead type of role in software development projects, but the technical role isn't the only thing that ensures success. That's why I always try to keep an eye for better processes.

Tech-wise I slant somewhat towards development in the Microsoft ecosystem. Since joining Softhouse I've done stuff in the Java EE/J2ME space as well, and I actually quite like it (except for the number of target platforms in J2ME; developing for 4 browsers is nothing compared to that). I try to stay in mental shape, so in my free time I play around with stuff other than what I do at work. Right now I'm doing some lab stuff with Ruby on Rails, and I really like it; I even described it like this: I work with .NET, but I have an affair on the side with Ruby.

Before joining Softhouse I worked as a developer at Qbranch in Malmö, and before that I was a Program Manager at RemoteX in Stockholm, Sweden. I have M.Sc. degree in Industrial Engineering and Management ("Industriell Ekonomi") from the Linköping Institute of Technology (i98 for those of you who wants to know).

When I'm not doing tech stuff I try to keep in physical shape; badminton, floorball, weight-lifting and running are the sports I currently do. Other than that I like cooking and baking; preferably I bake with sourdough.

Technorati Tags:

ITIL is hotter than Scrum

Monday, December 22, 2008 by Thomas L

Google search for ITIL:

  • Resultat 1 - 10 av ungefär 9 120 000 vid sökning efter itil. (0,16 sekunder)
  • 3 yellow sponsored links above the search results

Google search for Scrum:

  • Resultat 1 - 10 av ungefär 8 300 000 vid sökning efter scrum. (0,08 sekunder)
  • 2 yellow sponsored links

It's good I have both an ITIL and a Scrum certification.

;-)

On the next step after maintenance in development projects

by Thomas L

Much has been said on why development projects should handle maintenance themselves. Maintenance in this case means the process of fixing bugs and/or adding extra functionality after the first release. One of the main points of why is that there will be sub-optimization in the initial development project if the people in the initial project don't feel responsible for creating a maintainable system. In the initial development, the dev team cuts corners to be able to finalize as quickly as possible. This is often increased even more if the projects runs late, which lots of software projects tend to do.

Some of the stuff that may be cut by a project are automated tests, general refactorings and thus thoughtful software design. I've heard stuff like members of the development team reasoning like "It runs, I'm ready", which is kind of scary.

Another big advantage is that the knowledge in the initial project is preserved after revision one. If the initial team knows that it will disband after the first release, there will be a high focus on writing documentation, even though the team may run an Agile process without a high documentation focus. If the organization knows that the team will stay intact after release, there will be a smaller push for extensive documentation. Instead the organization will rotate in and/or out people gradually, and there will be no big-bang knowledge removal.

The above is an example of one of the lean practices; optimize the whole.

But now on to the next step.

I propose another work principle for the project, namely to internalize the IT operations to the development project. This means that there will be a percentage of the total time spent in operating the servers. Everything that is to be installed/patched is done by the project team.

One effect of this is that there is no buffering in the feedback to the team. The process "Bug in product -> Defect in the bug tracking system -> Failing unit test" will be the shortest possible.

Another effect is that the development project will get the aches of a hard to operate system, which means that the development will strive towards a release which is as easily installed and operated as possible.

One more effect is that it's easier to automate the deployment. Quite often the development project has expertise in automating the processes in the software development since the developers have built build scripts for everything up until the executable. When the project is in charge of deploying, there project will make sure that also this task is automated; much like the acceptance testing tasks nowadays see a high percentage of automation with the advent of tools like FitNesse and the BDD toolset. The Ruby folks have understood this, with stuff like Rails' Migrations and Capistrano.

However, there are difficulties in this. If the development team isn't mature enough, the released product will contain defects, which will be put out in a firefighting kind of way, instead of patching the product in a regular release cycle. Basically, all of the configuration management practices that often are in place in the operations department will need to be enforced when the IT operation is distributed.

The key here is maturity. Having a mature development team taking care of the operations will give lower risk for sub-optimization and a higher degree of optimizing the whole.

The me meme

Saturday, December 6, 2008 by Thomas L

Via Obie Fernandez:

Photo 21

Instructions:

  1. Take a picture of yourself right now
  2. Don’t change your clothes, don’t fix your hair…just take a picture. (should be super-easy with Photobooth)
  3. Post that picture with NO editing
  4. Post these instructions with your picture
Technorati Tags: ,