Tag: Corporate

  • Know your frameworks when developing software

    In the last few weeks I’ve got the chance to look into the sourcecode in a lot of different modules of the product our department is working on. The more code I had a look at the more a certain insight was forming in my head. What I saw when I looked at the different parts of the sourcecode from a lot of different people is, that it’s cruical for the maintainability of code to know the advantages and possibilities of the frameworks you’re working with. Otherwise you’re going to reinvent the wheel over and over again. And I recognized many different wheels in this code.

    We’re working with Java here and among our used frameworks is also the Apache Commons. It’s a framework which greatly eases the solving of common problems every Java developer faces every day. To give examples I’ll focus on working with collections here. The Java framework itself has already some convenience methods available when working with Collection classes in the their generic interface classes (like Collection, List, Set or Map) but the Commons Collections Classes provides further methods which cover many day-to-day operations with their xyzUtil classes (see CollectionUtils or ListUtils for examples).

    A lot of the operations I came across in our code deal with creation and manipulation of different collections, transforming from/to arrays, intersecting or summing them and so on. Lots of loops and different ways to solve always-repeating problems. With the utility-classes and methods from the frameworks we’re using a lot of these sourcecode-parts can be reduced and simplified from up to a few dozend lines to just a few ones or in a lot of cases even a single line.

    Not only does this reduction aid the readability and comprehensibility of the code it also makes it more robust as most of the framework-methods are already for example null-safe and thus take the burden of null-checks from the developer. And less code is easier maintainable than endless pages of difficult logic. Of course, the usage of frameworks also requires the developers who get at it later on to have at least a little knowledge of these but the invested time to get familiar with the framework almost always pays off manifold.

    PS: Another extremely useful utility class in the Apache Commons is the StringUtils class. Just have a look at the impressive convenience methods in its interface and I bet there are many methods in there which you immediately could use at some places of your code.

  • Experiences with optimized Firefox builds

    I’m running Firefox on all my computers. And I have a habbit of collecting lots of tabs for later reading or further actions. Furthermore, a lot of the pages I’m visiting have at least a little bit of JavaScript running. Some of those use scripting quite extensively.

    So it was no surprise that over time the oldest of my computers at work, which I use for reading email, was getting slower and slower with Firefox using up to 0.5 GB of the available RAM. Which got paged out to the harddisk a lot, when I also switched back and forth to Outlook and some other applications. It became quite inconvenient to use.

    I decided to take action and try the speed- and memory-optimized Firefox-Builds from pigfoot (via Lifehacker). Installation consisted of unpacking the downloaded package (available as self-extracting archive or also as portable version) and copying over my Firefox-Installation (after making a backup of course).

    Upon startup the first thing I recognized was the new application icon and startup screen. And it felt just a bit faster, almost unnoticeable. In all other manners it behaved exactly like the original Firefox. But now after having it runnig continuously for some days, which would have made the old Firefox crawling like a disabled snail, it is still running fluently and reacting a lot faster than I expected it.

    I’m very satisfied with this build of Firefox and hope, that some of the optimizations somehow make it into the original build. I think many power-users like me would only appreciate that.

    One drawback should not stay unmentioned: I do not know, if this version follows the automatic updates from Mozilla. Nevertheless, new versions have to be installed manually after these are available at pigfoot’s weblog. But for the improvements I’m experiencing on my stressed computer I’m happy to live with that.

  • Team switch results and sick leave

    On Friday I got feedback from the team where I’ve been assisting for some time. It seems, that I did quite well, the feedback was 100 percent positive and also accompanied by the statement that they would welcome it if I decided to permanently switch to them.

    I have to admit that I already played with that thought a bit, but for now I think I’m not switching (yet). After checking back with my superiors there would be no problem at all, so it’s really completely my own decision. After these results I think it will get more comon to exchange team members for a limited time cross-department. And I think that such exchanges will largely be positive as all concerned parties can learn from the experience.

    In other news, I’m in bed. Yesterday in the very last minutes of playing Badminton I somehow tripped and hurt my ankle. It was quite painful but after about 10 minutes it went away and I could walk normally. Over the course of the afternoon and evening the ankle began to hurt just a bit and became swollen. This morning my ankle had the shape of a tennis ball and hurt much more than yesterday so I decided to give the hospital a visit. The physicals resulted in pulled ligaments and now I’m on sick leave for at least this week. And I guess, the revisit on Friday will result in that I should stay away from such fast-running sports for some time. Damn…

  • Team switch

    This week, the first week back at work after vacation, had quite an interesting start. Monday was without surprises, just Sprint demos and a bit of administrative work. But on Tuesday the interesting stuff began when I received an invitation for Sprint planning meetings of another team.

    As it turned out, there had been some initial conversation about me helping in another team for a specific task but the discussion had no clear conclusion. In the end and after some negotiation between the teams we agreed that for the upcoming month I’m assigned to the other team. There I’ll assist with their current tasks so that the task I’ve been originally requested for can be finished faster after the ones with higher priority are completed.

    So I’m now completely shifted to a different team (the same I’ve already joined some time ago) for four weeks and after the first few days my impression is that as well the other team can benefit from my knowledge with the Scrum methodology as well as I can benefit from the different tools and experience how they solve their problems. A clear win-win situation.

    Of course everything has been discussed with my other team and it posed no problem to them in the upcoming time.

    Just one drawback is that the next vacation block in two weeks had to be canceled because of these changes. But since I’ve got plenty of vacation left for this year, this is fine with me.

  • Vacation backlog

    Yesterday I was one in the department who got the order to get rid of accumulated holiday and compensatory time. The target was set to have at most 10 days combined by the end of this year.

    I personally have collected quite a large backlog over the last few years which means now I’ve got quite a hard time to shrink this pile of time. In fact, I could go on vacation for four months straight.

    I’m not very happy with that because I like to work and be productive and tinker with problems and optimize stuff and so on. But I can also understand the position of our company because they have to keep the monetary value of these holidays and overtime hours aside and it builds up quite some weight on the balance sheet.

    So, now I’m busy planning how I’m going to distribute that time and thinking about what I’m going to do in that spare time.

    If you had four additional (and unexpected) months in your life, how would you spend them?

  • Internal review results

    Last week another round of the internal reviews started.
    The purpose of those reviews is to perform a two-way-feedback on the work performance of the employee. What went right, where are the strengths of the person, what went wrong, where are the weaknesses and what are the possible ways in the future to improve the personal performance.

    I’ve had mine mid last week and there haven’t been much surprises. One thing I’ve already recognized personally is, that I’m not as active in my main project because I’m constantly disturbed by other stuff which arises from old projects where I’m the only one left to do the work.
    Also, the project management got the impression, that I’m more "connected" with the older projects than with my main one which is partly true partly false.
    True in the case that I’m more confident in the older projects as I’m the impersonated knowledge of almost everything which is necessary for those projects. False in the case because that doesn’t mean that I’m not trying to increase my knowledge in the current project. But I could have done better.

    Of course there were an equally number of good points but I don’t want to elaborate on that because I cannot improve there. My improvement chances lie in the points where I got feedback that it could be better and I’m definitely working on it!

  • SCRUM Deja Vu

    For a few days now I’ve been joining another development team in our company to work on something which is more related to this team than to my current SCRUM team.

    This experience is like a Deja’Vu.
    The new team is just existing for 2 sprints (~4 weeks) and being in it reminds me of the beginning time of our own SCRUM team a year ago.

    It’s like a look in our own past where we hadn’t applied SCRUM as we do today and our team was not working as closely together.

    But they have the same learning progress which we had, even faster than ourselves. And that’s something they have to do on their own, this cannot be done by explaining or trainings.

    I think this team has the potential to become very successful.

  • RSA SecurID Token number symmetry

    At our company we’re using RSAs SecurID hardware tokens to connect our computers to the central company network infrastructure.

    As my computer, for unknown reason, drops out of the VPN connection regularly I have to log on using this token quite often. And the more I have to look at the generated numbers, the more I get the impression that the tokens often generate "symmetric-looking" numbers. Just at the moment I’m looking at 568561. The next such ones (in a timeframe of about 8-10 minutes) are: 804508, 259825, 438858, 832738.

    To me these numbers look not as random as they should, but of course I could be wrong and everything is really just coincidence. Is it really just randomness which causes so many codes with such a symmetric display and so many repeating numbers?

    One could now begin to calculate the chances of two digits appearing twice in a collection of 6 digits. How high would the probability be?

    I don’t really know because I don’t have enough time to investigate, but it leaves a curious feeling…

  • Stressful time

    Yes, the promised additional photos are still lacking presence. Yes, there are still blog-updates happening every two to three weeks. Yes, I know.

    Sorry for that. I’ve been trying to keep up with work and the stuff we have to do this semester for the university. This time we’ve got a project assignment in almost every subject also with some quit tight schedules.

    Also at work there have been some interesting changes as we have made significant changes to our Scrum development process. We changed the teams completely and also mixed up all of the upcoming tasks which means that the new teams have to adopt to the new areas they’re working on now. But so far I think it works even better than expected and we’re producing results faster than we hoped. I’m quite positive that this will advance even more in the near future. Exciting times ahead…

    What has been some sort of a setback in the last weeks were some expenses I had to take for my car. A big regular maintenance, some rust removal (rust has been no surprise but the amount was unexpected) and a change of my handlebars. New winter tires were also necessary. Bye bye, last months salary 🙁 At least it’s cheaper than having to purchase a new car (with more unexpected sidecosts) and I’m dependent on being mobile. But I think my car is now prepared for some more years to come.

  • Goodbye K.

    Yesterday was the last appearance of my former manager of the project I spent a great part of my time in this company on.

    Two days ago he announced a small farewell-party and invited lots of people to it. It was quite a nice party and we all had a great time. There were some sad moments tough, especially when one after the other had to leave and made a final goodbye handshake.

    Goodbye K., you’ve always been one of the bright spots in every project we’ve participated together.