Skip to main content

Posts

Reason 3: Don't build everything all the time

This post is a part of a tiny series I'm doing on why we use Maven, and you should too. Previous posts: Introduction: Why you should use Maven Reason 1: Get your libs-folder out of SVN Reason 2: Clean up your JAR-files Huge projects are hard to work with Many projects that have grown over time will become too large to easily work with. The workspace gets too many classes, the IDE slows down and the build takes too long. If the developers focus on separating the concerns of the classes into packages of functionality, these packages can be organized into modules. As the contract and concern of a module becomes more defined, its rate of change will fall to a lower frequency than the rest of the project. Once a module's activity has slowed down sufficiently, you can retire it into an external project, build a JAR-file from it and use this ready-built artifact as a classpath element for building and running the software instead. If changes occur later on, you can re-build the JAR-fi...

Reason 2: Clean up your JAR-files

Update: Added a summary section at the end of this post. This post is a part of a tiny series I'm doing on why we use Maven, and you should too. Previous posts: Introduction: Why you should use Maven Reason 1: Get your libs-folder out of SVN Some background Back a couple of months, I got the rewarding task of cleaning up our project's lib folder. You know the one: Crammed with JAR-files of various versions of the various dependencies your project has.. fizz-project \ fizz-core fizz-web fizz-libs \ junit.jar spring.jar common.jar lots and lots of others... ... Yup, good old fizz-libs . It needs to be regularly cleaned up to reduce software rot . Over time, the developers try out new open source libraries and remove the use of old ones, but they seldom take care to clean out the libs-folder, because they don't know if there could be any hidden effects from removing JAR files. Now, at our place we use Eclipse's . classpath file for specifying ea...

Reason 1: Get your libs-folder out of SVN

This post is a part of a tiny series I'm doing on why we use Maven, and you should too. Previous posts: Introduction: Why you should use Maven The libs folder We have a libs-module in Subversion. When you check out the source code for our main product, this is one of the modules you get. It contains a hundred-and-some JAR-files. These are the dependencies for the sum of our modules: fizz-project \ fizz-core fizz-web fizz-libs \ junit.jar spring.jar common.jar Downloading all these MB's of JAR files is something you'll have to do no matter which build system you use, so bandwith cost isn't an argument. Subversion also uses binary diffs, so copying or changing a JAR file doesn't increase repository size significantly. The problem arises when you want more than one product. As soon as you want to split your product into two applications (or services), each project needs its own libs-folder : fizz-project \ fizz-core fizz-web fizz-libs \ ...

Why you should use Maven

Update: I'm doing some work to split this blog post into some more fine grained posts in a series. Please, bear with me if these changes are giving you lots of noise in your feed-reader. I used to work as a consultant. My job was to improve our clients' ways of software development. Among the most important things I tried to teach them were: o Good code style and object orientation o Practical use of good open source tools (don't re-invent the wheel) o Automating tests of their software, and continuous integration o Splitting code into modules, dependency-relationships and versions The last point is perhaps the trickiest. It's hard to understand why it's needed in an isolated project, it is hard to explain how it should be done, and most importantly, there is no de-facto way or standard for managing modules, their relationships, versions and scope . This is why me and my consultant buddies embraced Maven many years ago. After years of pushing and evangel...

Initializing Scrum

Update: Just fixed some outgoing links. After I began working at my new workplace, I've been gently pushing Agile here and there. We've been brainstorming how we can get agile working for our people, and so far we've adopted a few patterns and practices, but putting those plans into action has taken some time. Originally I hoped that things would go very quickly, but agile is about people, and people are hard to change. Getting better, always. We have a product that works really well, and pretty much all of the developers are happy. (Generally speaking, this state can be dangerous for a business. There is a danger of falling asleep, one day waking up to see that your competitors have gotten a good hold of your customers, with a better product and better marketing.) Having an environment that strives for improvement is a critical part of persisting success. And striving for improvement, well, that's what agile is. Luckily, our team of developers do a lot of activ...

First month of work done!

So! As I blogged about previously , I've begun working at a new company right after New Year's. I figured I'd get some thoughts out on how the first month has been. Usually, when someone begins in a new job they're excited, nervous and above all very humble towards the existing practices that exist in the new workplace. Of course, I had these feelings, but being an agile fanatic, I was pretty sure that I would be able to find some improvement points. Here are some of the specific steps I took during my first weeks. Step 0: Start writing a diary I don't think an honest worker was ever harmed by being transparent in his work. A practice I've been doing ever since I started working is The Diary . Basically, just a personal wiki-page where you note down a few lines each day on what you're working on. Apart from being a good way to keep focus throughout the day and being a nice place to paste notes and code, it sends out a message: that you're interested in ...

Not consulting any more. Or am I?

As I've hinted in some earlier blog-posts, I have now moved to Bonn, Germany, and as of last Monday, I'm working as a developer for IP Labs . This means I won't be a consultant anymore, as I have been for the last 2,5 years. I am now a "fast ansatt", or steady employee. It's a bit interesting to ask myself: Does this mean my rocketeer knowledge increasing career has come to an end? Will I go to work with a much more relaxed attitude, getting used to stable work environments and fewer changes? Will I spend less time overall doing stuff related to my profession? I hope the answer is to all three question a ringing 'no!'. I really enjoyed being a consultant because it allowed me to do stuff I'm really good at. I'm not a super-programmer, in fact I know lots of programmers who are better than me (well, even more that are worse than me), but I hope I still will be able to contribute lots to the company by doing what I always do: pushing for more agi...

Projects are bad for software.

This post is mildly inspired by the discussions from this year's Smidig conference (Oslo's agile conference) inspired by Marcus Ahnve's talk about "totality outside the project" , roughly translated. I didn't see the talk myself (looking at it right now though), but when I heard the announcement of the title of the open space, I immediately recognized the idea as something that I've been lingering around for years, without being able to identify properly. In my last post , I wrote about how I learned about project management in uni, and how it is the way for building software. In my own opinion, that is not true at all. Over the handful of years I've been working with software, both in project and maintenance mode, I can just about sum it up in one sentence: Projects are bad for software. There is one exception (discussed below), but in all practical cases, I find this to be the reality, and if you think about it a little bit, I'm sure you'l...

What I learned about Project Management in school

Back when I started studying at uni, I took a course called "Organization and management of technical projects" ( Norwegian course page link ). The course was structured in a very interesting way, and dealt with a measure of topics which are still very relevant for me today (team psychology and leadership, project planning, estimating, etc). It was also held in parallell with a practical software development project ( Norwegian link ). I won't write too much about the course itself, but I want to write about the final "exam". We were asked to write a ~15 page essay reflecting on the subject based on our experiences from the practical project combined with the curricular theory. I handed in my copy in June 2004, just about as I started earning money as a software developer. Some times recently I've wondered if there are any nuggets in that essay (entitled Project management for the Nintendo generation) that I can still reason about today. (Skip to the bottom ...

Looking for work in Bonn (update: fixed)

Update: I was in Bonn doing an interview on Friday, and the outcome is more or less decided: I've found my new employer. Thanks for all the input and pointers! Note that I've removed links to some documents with some sensitive information. For those of you who don't already know: In about two months I'm moving from Oslo, Norway to Bonn, Germany. I am currently looking for work down there, and that's what this post is about. Here is the information any potential employer should be interested in: Elevator pitch: Norwegian MSc graduate from the University of Oslo, Department of Informatics. Four years of working experience with Java, consulting, agile methods, product development and open-source . I'll be ready to begin working on the 5th of January, 2009. I will be staying indefinitely. My résumé I will be visiting Bonn a couple of times in the following months, and it will be possible to meet me for interviews in Bonn on these dates: 7-10th of November 27th of No...

What I'm doing these days

I'm quite busy these days doing preperations for *a big change in my life* that will be the subject of my next blog-post , but I figured I'd give a quick status update that's a bit too big for my twitter stream . I was recently appointed to lead Objectware's Java-department's focus group on Agile . We've been doing agile for a long while on the company level, but it's first now that our department has its own group on it. My goal is to nurture it to being a very active micro-community that will produce knowledge both internally and externally. Much like we already did, but now with more, well, budget :) Our first accomplishment was to attend the Smidig 2008 conference with a respectable amount of Objectware speakers . There were alot of interesting discussions going on in the succeeding open spaces, my favourite topics incuded some hard-core web-testing (of course), when (not to) re-use and some others I can't remember right now. As part of my new ...

Debate about Open Source in Oslo next wednesday

Just a quick note. The alumni organization from my old university is arranging a meetup/debate about open source, and I'd promise I'd help communicate the event. The tine-up looks very promising: Heidi Arnesen Austlid, Friprogsenteret Per Hove, Oracle Norge Shahzad Rana, Questpoint Johannes Brodwall, Steria The event will be held in The Scotsman, where they sell beer! And there will be free pizza! Doesn't get any better than that :) I took the opportunity of uploading the full invitation here . So, set aside next wednesday evening and I'll see you there!

My JavaZone video is out

I was very happy when my JavaZone talk about " How I learned to love and hate web-testing " managed to fill up a whole room. For those of you you who didn't get in, or didn't manage to get a hold of one of the very rare overflow-headsets, or were busy at one of the other talks, here's the recorded video for your viewing pleasure: All hail web-testing! Click the image to get to the talk, hit the little Presentation link at the top and off you go. For the best viewing please, and this goes for all the JavaZone videos, I recommend the following: 1) Click the Max Slide button to get the slides in a seperate window 2) Right click the video for the flash menu 3) Click Zoom in, so you get a bigger video (click and drag if the focus is wrong) On a cool note, after the first count (yesterday), my video was the 7-most viewed video (of a total of 86 videos). Woohoo! But I'm likely to drop once people start realizing that All the videos from JavaZone 2008 are available o...

Some books for agile programmers

I'm giving docs.google.com another try. I  tried it over two years ago (wow, time flies) when Google Docs was still Writely. Oh, my prediction did come through (they got bought by Google), wuhu! So if this post gets doubly published it's because it got screwed up. Update: docs.google.com didn't manage to publish the title properly. I also have to apply some tags manually. All the pictures and headings came through allright, though. New books I just got these books: They're all from  The Pragmatic Bookshelf , although I got them from Amazon (who sent them from New-Zealand, which gave me sort of a bad eco-concience for a while..) cause they were alot cheaper there. The first title, The Pragmatic Programmer. Well, I'm sort of ashamed that I haven't read it before, being as famous as it is. However, I'm looking through the TOC, and I sort of get the feeling I've touched most of the points, either by hard realization and experience, or by advice from friends...

JavaZone 2008 and GeekCruise

So, JavaZone is done. I did my presentation, tada (please view full screen to get rid of the chippy graphics): How I Learned to Love and Hate Web-Testing View SlideShare presentation or Upload your own. (tags: jz08 javazone ) I got good feedback. In short: The slides are funny and original, my presentation moves were allright (good voice, good gestures, movement around the stage), the content was pretty good and interesting. The talk was at an introductory level, and I feel I hit the audience pretty well. Will be very interesting to see the video, as well as getting the feedback. I was also in the JavaZone arranging committee. You might've seen me scurrying around, commanding the guys in the orange T-shirts (they were the volunteers). It was alot of work, but it was alot of fun as well. Tomorrow evening we're throwing a party in their honour at the University, so if you're in the neighborhood, give me a ping and drop by. But anyways, I didn't get too see many talks. ...