A lot of our interaction with end-users goes through project administrators on the client’s side. That makes it hard to collect good feedback. A while ago I wrote about making the product interact with users. Truth is, we got very little useful feedback. People in the middle of a process apparently rarely take time out to give feedback. At least not in a B2B scenario.
We received very useful and valuable feedback the two times we made changes that took something away from users, that they had come to value. Each time we received immediate, articulate, not always friendly but very helpful feedback. Each time we learned something about how people actually use the product and as a consequence were able to make it even better. >> more…
Refactoring as one of the methods of agile development is part of our everyday practice. It consists in well-defined (often small) changes to the code without altering functionality. One goal is to make the code more clearly saying what it does. Refactoring in this sense is often done while exploring the code before its going to be changed. It shows once more the advantages of bottom up approaches, as small steps are less likely to break the code, while nevertheless in the long run not only leading to better local understandability but to better global structure.
Martin Fowlers “Refactoring: Improving the Design of Existing Code” from about 10 years ago is considered the canonical reference on the topic. And yet with this long history its fun to read, especially if one likes to know exactly whats going on inside those magic refactoring functions from our modern IDEs. All those refactoring methods are shown broken into small steps. By expressing them this way Fowler laid the groundwork for our today’s fancy refactoring tools. >> more…
Like probably everybody else in our industry I have a lot of tasks I should be working on at any given point in time. The question always is, how do I best get a handle on all the things I should/want to be doing?
For a long time I tried to use the system Steven Covey suggested in “The Seven Habits of Highly Successful People“. The book is great and everything Covey says is very true. But as a time management system it fails. It reminds me a lot of the old waterfall.
- Fist you have to have a mission,
- then you have to define your roles,
- then every week you have to plan what to do to achieve your mission within your roles.
- Every Task should be scheduled at the beginning of the week to be worked on on a given day of the week – just like an appointment.
>> more…
For me, work and life is not something I want to balance.
We should not work on anything that we wouldn’t also spent our private time on.
I’m currently looking into another one of your bowling games, this time written in F#. Again a language I’ve never heard of, but it seems to be pretty nice. Very similar to SML (yes, I also know some languages nobody else knows!), which I learned at university. I really like functional languages, especially when it comes to list operations, with all the folding, mapping and filtering. And I really miss them in Java!
Instead of a plain
-
result = List.map function inputList
you need that clumsy and not at all explicit
-
List<OtherType> result = new ArrayList<OtherType>;
-
for (Type each : inputList) {
-
result.add(function(each));
-
}
>> more…