Help! My development environment is killing my productivity
No question about it, as software developers our single most important task is to delive business value for our customers. The software industry is turning their back to the classic waterfall style of development and embracing agile methodologies. Still, teams struggle to deliver functional value at a regulart steady pace. There might be several reasons why this happens. In this post I like to focus on one important factor in the process of software development, the development environment.
Workaround for mvn release:prepare scm tag bug
I’ve had some problems releasing my components using the mvn release:prepare plugin for some time now. Since this used to work before I was convinced that this was project specific and caused by some dependency or plugin conflict. However this was not the case. It turns out that this is a problem with maven 2 and subversion.
Read more »
Spring WS and basic authentication
Today I had to integrate against a web service that required basic authentication in order to use the service. One of my colleagues had started out writing a Spring WebService client against the service. Midway through the task, I was asked to finish off the task as he had to prioritize some urgent production issues. After some initial set up trouble I was ready to test the service….
Read more »
My first experience with git
Yesterday I used git for the first time, the reason was that I inherited a task from one of my colleagues and the version control system for the component was git. I’ve learned that Git works best if your OS is Linux, unfortunately my laptop at work is set up with Windows so fingers crossed that this tool won’t hurt my productivity too much…
TDD workshop – Make the right code right
Last week a colleague and I held a presentation about TDD for some of the developers at one of the largest banks in Norway. It was a 3 hours session with a mixture of presentation and 3 demos. The presentation can be viewed here. Here is a quick summary of the contents of the session:
The session was split into three parts:
1) TDD intro – What is it and why should you use it
2) Beyond TDD – Why supplementary techniques is needed
3) TDD in “real life”
3 ways to kill focus in an agile project
Focus is in my opinion, one of the key ingredients in agile software development and teams with the correct focus will consistently deliver more value to the organization than none-focused team. Obviously.
There is more than one reason why focus is important within software development. Not only must the team focus on the stories at hand, they must also focus on delivering the right code for these stories. When you know that 56 % of all errors in software projects stems from the requirements you realize that this is extremely difficult. Yes, software development is hard and it is really not surprising that so many software projects are late, more expensive than planned or even worse: fails to complete at all.
Maven generate archetype
Recently, a colleague and myself decided to brushing some dust off some maven archetypes we created for our employer to fasilitate kick-start development in projects of similar type. Things went smoothly until we hit a problem which wasn´t easily solvable. Searching for a possible solution to this problem on the web, we then discovered that using mvn archetype:create-from-project plugin would give us a great starting point for creating a better archetype.
AspectJ – Lessons learned
AspectJ is a powerfull tool and is able to solve some problems that the Java language is not able to. It gives developers flexibility to solve crosscutting concerns like logging, profiling, security and so on. At the same time, AOP can be dangerous to us and may lead to serious problems if used incorrectly.
Over the last 2 years I’ve been using aspects quite a lot and gained some experience on how to use it. In this post I want to share some of the lessons I’ve learned.
Leaving the code in a better shape than I found it
Yesterday evening I read the latest blog post from Uncle Bob about how refactoring can help you find dead code in your code base. A great post, you can find it here. Apparently, Uncle Bob has a policy that says that whenever he has code up in an editor, he has to try to leave it in a better shape than he found it. I think this is a great policy and although I think I will have problems applying this principle myself I will at least try to apply a policy of leaving code I work on in a better shape than when I started….
6 keys to “Hyper-productivity” in software projects
Some software projects fail, others succeed. Why is this so? Is it possible to pin-point the success criteria for successful software projects? Over the last couple of years I have participated in quite a few “agile” projects, and for the projects falling in to this category I think that I have learned a thing or two. Below is a list of 6 key criteria that I believe is important in order to be successful when doing agile software development:
- Focus
- Use XP engineering practices
- Start small and design for change
- Know when you’re done
- Team size
- People
Leave a Comment
Leave a Comment
Leave a Comment