How to destroy morale and alienate your key people May 9, 2008
Posted by Wille in Contracting, Management.add a comment
The Register reports that Barclays Capital is cutting the pay of their contractors by 10% over the board, those who do not accept the pay cuts will be allowed to work out their notice period.
I can sympathize with Barclay Capitals wish to slash 10% of contractor costs, but the way they are going about it is rather inept: they will annoy and alienate just about every contractor they use, which will hardly do wonders for morale, productivity and retention of high value individuals.
The fact is, some contractors may be grossly underpaid compared to the value they bring as it is, whereas others may be grossly overpaid or even surplus requirements. Why not try to identify the overpaid or surplus requirements contractors instead of using such a blunt instrument to cut cost?
..but then again, doing shrewd business moves can sometimes be hard work, and given the predicament that necessitated this move in the first place, shrewd business moves are probably not very high up on their agenda..
(Point of note: I do not contract for Barclays Capital, nor have I ever been affiliated with them in any shape or form).
Recruitment donts May 6, 2008
Posted by Wille in Management, Personal.1 comment so far
I know writing this, I might put of some perspective employers or clients, and I might offend those whom it concerns, but I will write it nonetheless, because I am annoyed..
Recently, I have done three interviews with a bank for a permanent role, and today I got the news on the final decision, the feedback was, and I paraphrase what was said: “You were as strong as any candidate, but they decided against you because of your contracting background and opted for someone with a history of permanent employment”.
Now, I understand perfectly that you don’t get every role you interview for, and that there can be a number of reasons for not getting a role (skill/experience mismatch, team/personality fit, they don’t like your tie or the fact that you’re devilishly handsome, etc etc), and I completely understand the objection given to me as a reason not to hire me.
But here’s the thing that rubs me the wrong way:
If you already know that something plainly visible in a persons CV might pose an insurmountable obstacle to hiring them, don’t bloody interview them three times! It is a waste of time and rather unprofessional!
This is especially true in the light that my contracting background was dealt with and discussed during the first interview.
This becomes even more preposterous given the general market preference to give permanent employment to people with a history of permanent employment - the fact that the guy with the permie past is interviewing for you is hardly a testament to his undying fidelity to his employer, is it?
In reality, it probably means he is a job-hopper looking for his next payout.
Personally, my choice of having been (and still being) a contractor is not a matter of personal preference for contracting or permanent employment (in fact, I started out as a contractor out of necessity back in 2002, in the aftermath of the dotcom-bust, contracts where all I could get).
The choice between permanent employment and contracting has always been a choice of opportunities: whereas I have had ample opportunities as a contractor to find interesting projects and roles on a project-by-project basis, the opportunities for interesting careers and personal development on a permanent employment basis have been fewer. It doesn’t mean permanent work is out of the question, it just means that my view on the best opportunities for personal development in the past has been in the contracting market.
[END OF RANT]
“Generic” code - part 2 April 23, 2008
Posted by Wille in Software Development.2 comments
A previous post raised a misunderstanding for one reader, thinking that I was somehow opposed to reuse.
That could not be further from the truth, I am by nature a “lazy” developer - I don’t like solving the same problem more than once and therefore always strive to refactor into a single unified solution when I come across a similar problem a second time. To me, writing as little code as possible to meet requirements is a virtue.
BUT, what I was railing against in my previous post was people trying to solve problems they don’t have, with “solutions” that have vague responsibilities and roles. To add insult to injury, people often try to justify these vague “solutions” by throwing around the word “generic” (hence the word in the post title).
If there are classes in a codebase to which you cannot clearly and succintly state what its responsibilities are, it is code bloat, I don’t care how much someone tries to say that it is “generic” and solves all manner of non existent problems, it is bloat all the same.
Many a years ago when I was just a young lad coming into development, a senior guy on my then team put me against the wall for some classes I had written and asked me (for each class): “What is it’s responsibility? What does it do?”. At the time I couldn’t answer the question succintly, and we rightly cut the code. Ever since, I have in turn asked the same question of people I have worked with when I have come across classes of dubious nature or purpose, almost always to good effect (either cutting the code, or refactoring to make responsibilities clearer).
As a rule of thumb, never try to solve problems you don’t have. IF (and that is often a big if) you eventually come across the problem you predicted - refactor.
99% of the time you’ll find it easier and a lot less effort to refactor a clean codebase to solve the problems when they come along rather than try to predict things you do not have a clear picture or understanding of.
Credit Crunch? Bah! The IT market is still alive and kicking April 18, 2008
Posted by Wille in Investing & Economics, Technology.add a comment
Much has been speculated about the Credit Crunch’s potential effects on the wider economy - and I’m still inclined to believe that although the effects on the labour market might be negative, it will not be anywhere near as brutal as the aftermath of the dotcom-bust and 9/11, at least not for IT.
Personal, anecdotal evidence (the best kind*, as you can bend it anyway you want to fit your thesis..) would suggest that the IT market is actually pretty bouyant at the moment: in the last two or three weeks I have been barraged with more phone calls from recruiters than at any other time in the last 2-3 years, even though the last 2-3 years have been rather good.
* ..although quite obviously not the most reliable kind of evidence..
Fun with misery: House Price Crash calculator April 15, 2008
Posted by Wille in Investing & Economics.add a comment
..personally, I think a reset to mid-to-late-2005 prices seems reasonable, given current rental yields and credit conditions.
Words I hate in software projects: “generic” April 11, 2008
Posted by Wille in Software Development.4 comments
“Generic” is a word I have come to hate on software projects. Everytime I hear someone use the word “generic”, I pretty much instantly know that the person using the word is trying to solve a problem he can’t really define, because it is problem he doesn’t really have.
The same kind of bad smell and warning bells that go off should be sounded when someone uses the word “generic”, as when you find a class called ThisThatAndTheOtherManager in your codebase, because trying to do something in a “generic” way is a sign of the things I just mentioned: someone trying to overengineer a solution for vague problems that really don’t exist at the current time.
My firm opinion is that all solutions should be specific for the domain that they address - let me give an example: what does the generic ThisThatAndTheOtherManager really do? What problem does it solve? Is it clear to you? Probably not. On the other hand, what does the interface Comparable do? Even without knowing Java (from where the example comes), you can probably safely say that a Comparable can be compared with things, most likely other Comparable’s. That is a pretty specific, well defined task.
Sure, it doesn’t say a whole deal about how it compares itself to others, but that is where the beauty of object orientation comes in - you can solve a multitude of real, specific problems in the same domain, not by trying to create multipurpose objects that can be anything, but by creating encapsulated objects with tight, well defined responsibilities.
Any reusability comes not from being generic and multipurpose, but through having a small, well defined area of responsibility where the details of how that responsibility is carried out is hidden from the objects collaborators.
By combining objects with well defined responsibilities in different ways, you can achieve re-use because you have specific building blocks for your solution to a problem.
If you were building a house, wouldn’t you prefer to use nails and screws made for the purpose of putting up walls, rather than some blunt and generic “adhesive-put-things-together-thingy” that you didn’t quite know what it did or how it was supposed to do it?
So the next time you try to create a “generic” solution and solve problems you don’t really have or can’t really pin down, think twice about what you are doing. “Generic” is a swear word and an anti-pattern that merits a big smack over the back of your head if you use it.
Signal vs. Noice in times of volatility March 31, 2008
Posted by Wille in Emerging Trends, Investing & Economics.add a comment
Anyone trying to follow the gyrations of the economy and markets these days would be excused for feeling slightly panicked. But in times like these, trying to react and predict every movement of the markets and its implications is folly - it’s a sure way of growing an ulcer.
What is more interesting and definitely a lot more productive is to try to see what the long term implications of current and recent events might be, what long term effects will they have in 1, 2 or 5 years time? What do those long term trends mean in terms of you protecting your downside and capitalizing on the opportunities?
Forget about whether the stock markets are up or down 5% tomorrow, try to see where the ball will bounce next in the long term, before someone else does it!
The best medicine in these days is to apply a few mindsets, regardless of whether you are an investor, running a startup, or just a regular Joe worried about his livelihood:
- Don’t panic about events on a particular day!
- ..but don’t delude yourself either, or engage in wishful thinking. Just because you don’t want or wish for something to happen doesn’t mean it can’t happen anyway. Self delusion, wishful thinking and denial are strong instincts these days in most people, don’t be one of them.
- Don’t try to “time the market” - unless you are clairvoyant, you’re likely to get it wrong, just try to find what you think is good value based on rigorous analysis and research. But be warned, there may not be much good value out there at the moment.
- Take the long view - try to see where current and recent events are leading in the long term, not what might happen today or tomorrow.
Volatile times carry a lot of noice, the trick is in cutting through the noice and finding the signal.
Victims of the Credit Crunch March 30, 2008
Posted by Wille in Investing & Economics, Uncategorized.1 comment so far
I’m generally against government intervention and hand-outs, but seeing this, it is good to see that the government at least helps out those that need it the most.
The Credit Crunch and perverted incentives March 23, 2008
Posted by Wille in Investing & Economics, Management.add a comment
A lot can be said about the current credit crunch - first and foremost central banks across the world in general, and the american Federal Reserve in particular have poured gasoline on the credit bonfire by means of artificially low interest rates, resulting in unhealthily cheap credit being plentiful. This is not a lesson the Fed seems to have learned anything from, now that they are again lowering interest rates and pursuing wildly inflationalary monetary policies that will only go towards rewarding irresponsible economical behaviour (spending more than you have on things worth less than you spend), and penalizing responsible economic behaviour (saving and producing).
But, blaming only the monetary policies and monetary system is short of the target, even if they have not helped the situation - it’s kind of like blaming obesity on McDonalds for selling Big Macs so cheaply.
The core problem has been a perverted incentive system in both retail- and investment banks coupled with weak checks and balances on risk taking:
Effectively, people in the banking industry have seen massive potential rewards in pursuing high risk, short term goals, but very small downsides if those risks would go haywire.
Let’s just examine the following example:
If you were to put $1 billion of someone elses money on the line on a very high risk gamble, were you knew that if it worked out, you’d be getting a $10 million bonus, but if it went all wrong, all that would happen would be that you got fired and could move on to the next employment were you would be faced with similar situations. Would you be inclined to take the great risk for the big reward, with the knowledge that the downside was very limited?
I think the answer to my question for most sane, rational people would be a resounding “Yes!”.
What is currently playing out is nothing more than the consequences of massively perverted and misaligned incentives between the employers and employees (the bankers themselves) on a massive scale.
If a companys goals are in complete misalignment with its employees incentives, disaster will always follow, it is as simple as that. The Federal Reserve and other central banks will probably keep their incompetent bumbling up for the foreseeable future, but the affected banks can certainly do something about reforming their screwed up and broken incentive systems .
Getting a large bonus should not be a God given right regardless of long term results, it should be a privilege and reward received for doing the right thing in the long term perspective, regardless of whether it means taking a few short term hits at times.
Capitalist welfare queens March 23, 2008
Posted by Wille in Fun, Investing & Economics.add a comment

(A link for those of you not familiar with the term “Welfare Queen”, only thing is, this time the welfare checks are written by the Federal Reserve by means of bank bailouts and inflationary monetary policies).