“To boldly go where no broadband has gone before” August 28, 2007
Posted by Wille in Meta, Personal.add a comment
By the way, my access to the Internet outside of work might be spotty at best over the next few days, so posts may be a bit infrequent. But don’t worry, hopefully I’ll be back in full force again this weekend.
(This also means new commenters might have to wait a while to have their comments moderated).
Principles of software development team leading August 27, 2007
Posted by Wille in Management, Software Development.1 comment so far
On Wednesday, I’m starting my new role as a Java Team Leader, as I’ve understood it, I’m expected to be one of the developers, yet be the one that is responsible for leading the team (makes sense, huh?). Pretty much the kind of role I love to do: take on a bit of extra responsibility and accountability, while still getting my hands dirty down in the trenches.
This got me thinking a little more tangibly about what my “principles” are when it comes to leading a team (I’ve written on leadership before).. In my view, it is not being a drill Sergeant who dominates people and barks out orders, I think anyone who thinks that that is “leadership” probably has some serious issues of low self esteem…
With the risk of using the “buzzwordese” I hate, I think being a team leader in software development is more about being a facilitator than dictator. I think the best way to make this more tangible is to write down a few tangible principles of what I think is at the core of it all (regardless of what the “formal” methodology used is):
- Understand and set priorities: liaison with the people holding the business/requirements knowledge to understand what things provide them with the most value. Highest priority should be given to areas that are of high business value and/or pose large technical risk (my firm belief is that you should try to remove risk out of the way as early as possible, to lessen its impact and know what you are dealing with).
- Check progress and hold people accountable: If “features”/pieces of work are defined on an appropriate level of granularity (done in a few days or fractions of a day, rather than weeks or months), this shouldn’t be harder than holding a five minute “stand-up” every morning, where the team members share problems, obstacles, solutions, progress since the last stand-up and what they plan to do until the next stand-up. This way, people are accountable to the rest of the team, and not a single person.
- Illuminate and remove “obstacles”: If something external to the team is hindering progress for the team, the team lead should take steps to remove these obstacles, preferably by the next stand-up meeting (if it is in his power, otherwise he should raise it with whomever has the power to do something).
- Help and mentor people where needed: All teams have varying degrees of experience and skill, and I think it is the responsibility of the whole team to help each other, but the responsibility of mentoring and helping less experienced developers falls perhaps even heavier on the shoulders of a team lead.
- Enforce standards and principles: This is perhaps the only part of team leading that I think borders on “barking orders”. The team leader should make sure common standards and practices are followed, as this means people can easily slot in and out of the team, and people will know what to do given different scenarios.
People more well-versed in software methodologies might note that “my” principles borrow heavily from Agile methodologies, and that is entirely true. That is because I think they are fundamentally good principles to work from, even if an environment can’t, won’t or isn’t ready to go 100% Agile (besides, I’ve never seen a single environment that was “academically pure” from a methodology viewpoint).
The Danger of early success August 26, 2007
Posted by Wille in Entrepreneurship, Human Behaviour.1 comment so far
Most entrepreneurs who succeed tend to have a few failures in their past: building a successful startup into something big and sustainable is hard, quite simply the odds are not particularly good, especially for first timers.
However, the few people that do succeed at their first attempt run a definite risk of getting some less sympathetic characteristics that are annoying to their surrounding, and that may also work against the entrepreneurs themselves in their future attempts. Younger entrepreneurs (as in: less than 40 years old) are probably more prone to these risks, due to a lack of life experience and lack of experience living through adversity and challenges.
What am I talking about? I’m talking about arrogance and a sense of infallibility. A lot of first time successes come to think of themselves as brilliant business gurus, where the truth might actually be that they where simply in the right place at the right time and got lucky.
This arrogance leads them to believe that they can do no wrong, and perhaps even more damaging: the only way to succeed is to execute in the exact same way as the first time, regardless of what the specific circumstances are. Some may even go on tour, selling books and seminars proclaiming their once successful model to be the one and only true way of starting up.
Now, I’m not saying all first time successes are assholes, nor am I saying that all of them are wrong. But one has to be very aware of what circumstances played into ones success (regardless if it is the first or tenth time that is a success). What I am saying though that young entrepreneurs in particular who have early success are more at risk of loosing touch with the ground and start buying into the hype around them.
Keeping a level head and a sense of humility towards your success (regardless of the area of success) will always do you good: knowing what went right, and what went wrong, even when things eventually went well are a good way to increase chances of future success. Also knowing that no two circumstances are the same is important.
Economics: the “I told you so”-edition August 24, 2007
Posted by Wille in Investing & Economics.add a comment
As mentioned in my previous post, Time magazine was of the same opinion as me to the causes of the recent drop in the markets.
Now it seems like the latest issue of business weekly The Business (paper issue) is confirming some of my other predictions/conclusions:
- Back in April, I said that the current levels and price growth in the London housing market are unsustainable. The Business reports that the price of the average home in London fell in July from £400000 to slightly over £394000. This is the first drop in many years.
- The other day, I wrote about the fallacy of trying to predict future events based on the past. The Business also reports that hedge funds that used computer based statistical models to predict market movements went haywire during the drop in the markets:
The trouble was, when markets suddenly started to turn volatile, much of the historical data on which quant funds based their trading on turned out to be useless. “Events that models only predicted would happen once every 10000 years happened every day for three days”, noted Lehman’s Matthew Rothman in an analysis of why the funds had done so badly.
So stupid, yet predictable. If an event is considered so “out there”, and so rare that people think it will only happen every 10000 years, chances are they actually have absolutely no clue whatsoever as to the events likelihood or frequency, and that they are doing nothing other than guessing in the dark.
Time magazine came to the same conclusion as me on the market drop August 24, 2007
Posted by Wille in Investing & Economics.1 comment so far
With regards to my recent analysis of the drop in the markets, it has come to my attention that Time magazine came to pretty much the same conclusions. The article predates my post by a few day, but it didn’t come to my attention until a few minutes ago, when I realized some readers of this blog had been referred here by the URL of said article yesterday (did not find the link here though, which makes the referral a bit strange..).
The dirty tricks recruiters will try on August 24, 2007
Posted by Wille in Contracting.add a comment
Well, after looking (harder) for about a month, I’ve finally been offered an acceptable contract. It took some time, due to the market generally being slow in July and August (holiday season in the UK), and also because I have tended to restrict my search to “higher end” contracts. So, from Wednesday on I will start a new role as a Java Team Lead, which should keep me busy the better part of what’s left of the year.
But, having looked for some time (and done it many times before), my nose is starting to develop a very good “bullshit” sensor when it comes to recruitment agencies. There are many good agencies out there, but unfortunately, they also have many competitors that range from the innocuously incompetent to the outright fraudulent. Here are a few things the less honourable agencies will try on when you are looking for a contract:
- “What is the lowest rate you would accept?”: Answering this question directly and honestly is a great way of screwing yourself. Once you have given them a figure you can bet that it will be used as a base for the highest rate you will ever get out of that agency (out of the budget given by their client, they get whatever figure you don’t). A better approach is to avoid answering directly and asking them what their ballpark budget is.
- “What other companies have you been put forward to? We don’t want to hurt your chances by putting you forward somewhere you have already been put forward”: This is a fishing expedition for new business leads, by getting to know other companies that are looking for people like you. Do not for a second believe that the agency would hesitate in calling the client and offering more candidates that are not you. Avoid answering this question at any cost, even if it means bluntly saying that you wont answer it.
- “Can you give me any references from your past work? Don’t you have any more senior references?”: Very relevant if you’ve already had an interview or you know who the client is and you have been told that they want to interview you. But, if you do not have anything tangible you can be sure it is a fishing expedition for leads to people who have been known to hire contractors. Unless you know an agent really well and know them to be honest, never-ever give out references without having been given something tangible yourself (as mentioned above). It is better to miss out on a few opportunities (which is highly unlikely) than rewarding scumbags trying to con leads out of you.
- Advertisement with a vague/broad role and location: Some agents get commissions for the number of CV’s they retain. This means that from time to time they will put out ads for roles that simply do not exist. These roles are usually extremely vague or broad (looking for several types of roles even), and very vague on the location of the project. Typical CV farming.
- The last-minute change in terms as you are about to sign: It is not uncommon at all that terms discussed while negotiating a contract all of a sudden are not what they where agreed once the contract is presented for your signature. Agencies trying to pull a “switcharoo” in hope of you not reading the fine-print is common, unfortunately.
When it comes to the lead fishing, one very definite hint that they are fishing and do not have an actual role is if an agent calls you and is more interested in your references or where else you have been put forward, than he is in telling you about the role or who the actual client is.
Personally, I’ve been subjected to all of the above mentioned points at one time or another (and fallen for them when my skin wasn’t as thick). The fact that agencies try these things on with young kids trying to get their first contracts isn’t too surprising, but personally I find it mind-boggling when they try it on with someone who has done contracting for over five years.
I usually try to be firm, but non-confrontational (without giving in) as far as possible, but these days, in particular when it comes to shameless fishing expeditions I just tell them to buzz off if they are too pushy (and I also put them on my little “black list” of agencies I will never again deal with).
The fallacy of predictive risk management August 22, 2007
Posted by Wille in Human Behaviour, Investing & Economics, Management.add a comment
(Note: although I use some examples from financial markets, the points of this post apply to any area where predictive risk management is applied).
Recently, I have been reading quite a lot of literature detailing the hedge fund industry, and literature describing different models for financial risk management. Like risk management in many other fields, many of these models are based on using statistical and mathematical models to try and predict the likelihood and impact of various possible events. Financial institutions, and hedge funds in particular seem to pride themselves on these models, claiming to be able to not only guarantee some measure of long term returns, but also limit any losses made. In some cases the claimants credentials are truly impressive, such as in the case Long Term Capital Management, which had a couple of Nobel laureates of economy as their risk- and investment managers.
Funny thing though, Long Term Capital Management, like many other institutions claiming superior risk management capabilities pretty much went bust after a number of events occurred that they where not able to predict…
The problem with managing risk by trying to predict future events and the likelihood of them is that the world is inherently unpredictable, it does not fit into any statistical models. Using statistical models to predict the future is probably no more useful than trying to predict the world through tea leaves or astrology. Sure, the mathematical models backing the predictions may be impressively complex, but they are still no more use than astrology.
How can I claim such a thing? Well, the nature of predictive risk management through mathematical and statistical models is that you are extrapolating the future by looking at the past and past events.
But what happens when an entirely new event occurs, one that has never happened before? It will not be part of any predictive models that you may use, hence its impact or likelihood cannot even begin to be estimated!
This is because however good the models are at predicting the events they model, they still only model a minuscule subset of events, out of an infinite number of possible events and outcomes that may occur.
Simply put, even if you buy all the issues of all available newspapers and read them thoroughly, you will still not be able to predict major future events one week, one month or one year ahead. Even if you did dress it up in the most impressive statistical and mathematical formulas you could think of, it would still not be possible.
So why do people in different walks of life, particularly in finance still obsess over predictive models of future events as a means of directing their actions and managing risk? I have no definite answer, but I can venture a guess as to a few factors:
First, it gives people a false sense of security, they believe that if they do it elaborately enough, they will actually be somewhere close to the truth.
Second, people in general are arrogant. People throughout history have believed that they have had things figured out to a higher degree than what they really had. Just remember the calls for abolishing the US patent office in the 19th century, because “everything that could be invented had already been invented”.
And thirdly and finally, we, as humans are obsessed with trying to categorize, simplify and make sense of things and events around us, even those events that are infinitely complex. Trying to predict the future through elaborate, but ultimately incomplete mathematical models panders to this very need.
Please, please stop the language/platform wars! August 20, 2007
Posted by Wille in Meta, Software Development.add a comment
By writing this post, I might be throwing big, ol’ rocks in a house made of glass, but I can’t help to think that about 80% of software blogs are pretty.. Childish and braindead. Looking at a site like DZone, which is supposedly a place for the best “software development links”, and I can’t help but cringe most of the time. Basically, the bulk of posts are a variation of one of the following subjects:
- “Hello World!” tutorial of some language or framework for the nth time.
- Declaring some language or platform dead (Windows, Linux, Java, .Net, depending on which side of the aisle people are on).
- Declaring some obscure framework, no doubt developed by the poster, superior to the industry dominant framework (”BraindeadDAO is greater than Hibernate! Nener, nener, nener!”)
- Declaring desktop apps dead.
Of course there are exceptions to the rule, and some bloggers are consistently interesting and good, but generally speaking, developers who blog seem to be stuck in a social maturity state most suitable for the playground sandbox.
I can settle most of the childish debates within a few words in this post: I got the “Hello World!” tutorial the first time around, Windows, Linux, Java and .Net will continue to coexist for some time (but all of them will become obsolete sooner or later), nobody cares about a two week old framework used and developed by one guy, at least not if it comes with preposterous claims of superiority over mature industry leaders, and finally: desktop apps are alive, kicking and very well.
I can live with the reoccurring tutorials, because they are actually written with a well meaning purpose, to help others.
But the constant platform/language/framework wars are just plain tiresome. The fact is, Java developers slagging off .Net, and .Net developers slagging off Java don’t actually have a leg to stand on: in 99.99% of the cases, it is just people being afraid to loose their investments in some technology. People who have spent the bulk of their careers writing software in language are scared shitless of being made obsolete by some other technology, and if it isn’t that, it’s because they are so set in their ways that they actually don’t want to go through the hassle of learning a new technology, hence they try to protect “their” technology by slagging others off.
The fact is, the software industry constantly makes technologies obsolete: CORBA is pretty much obsolete today, COBOL has been obsolete for some time, the big monolithic J2EE servers of the early decade are becoming more and more obsolete (but reinventing themselves with JEE 5). Programming languages usually have a lifespan of around 15 years before some other language starts displacing them (at least in greenfield projects). The smart techies will not be tied by a chain to a single product or technology, they will leverage their earlier knowledge, but constantly be prepared to learn new ones as they become relevant. You need to adapt and learn, or face becoming obsolete yourself.
But I’m pretty sure one thing is certain: a given technology won’t become obsolete just because some 25 year old kid wrote “.Net SuX0r!” on his blogg or some internet forum..
Science beyond Fiction August 19, 2007
Posted by Wille in Science.add a comment
Read a fascinating article in the latest issue of New Scientist about so called Bolzmann brains, a hypothetical group of self-aware entities that can spontaneously appear in outer space and observe the space around them. The thesis of the article was that these “brains” may one day outnumber the number of “ordinary” sentient beings (like humans) in the universe. Once your heads have stopped spinning, feel free to explain the theory and implications to me, because my head is still spinning..
Maybe the Q entity from Start Trek: The Next Generations isn’t that far fetched after all?
Planning is risky, so plan less! August 19, 2007
Posted by Wille in Human Behaviour, Management.add a comment
With regards to my previous post about people over process, it might be worth revisiting an older post to get an idea why overzealous long-term planning can be highly detrimental to the success of any project.