Struts2 is out - so what? February 28, 2007
Posted by Wille in Software Development.add a comment
Struts2 was presented as “ready for primetime” yesterday. I’ve been following the Struts2 progress for about a year, at first with enthusiasm, later on with increasing levels of despair.
Struts2 is heavily based of Webwork2, which in my opinion probably was the best Java MVC framework available about 2 years ago. However, Struts2 seems to be little else but a repackaging and rehashing of Webwork2. For the average user, there is very little new available at all.
This confirms my initial hunch after having been on the Struts2 dev-list for a couple of months earlier: there was very little progress, it all resembled a debate-club more than anything else. Endless discussions but very few decisions and very little progress.
This is most regretable, as the Webwork2 foundation is a great starting place for ideas, and no doubt the main devs on Struts2 are very smart and skilled. But that is simply not good enough if progress lags and little ever happens.
The state of the Java MVC world is in my opinion in disarray to say the least:
- Struts - Antiquated
- Struts2 - going places way too slowly
- JSF - Decent ideas, but antiquated from the get go (AJAX is an afterthought), heavy, high learning curve and hideously slow
- Spring MVC - Not too bad, but clearly not the main focus of the Spring team
There are a number of other MVC frameworks around that are reasonably good, but they all seem to have limited traction, and therefore are a slight risk to adopt. And of all the major ones, most seem to be either overengineered, evolving too slowly or in most cases both.
Java is at a definite risk to being doomed to being a back-end integration technology only, without a single, proper, widely-accepted MVC framework that isn’t hideously overengineered and heavy, this might actually happen.
“If the only tool you have is a hammer, every problem looks like a nail” February 26, 2007
Posted by Wille in Human Behaviour, Management.add a comment
The title of this post says it all, and it tends to apply to most people in most walks of life:
- Politicians will try to solve most problems through legislation, even if over-regulation is the problem.
- Managers will try to solve problems with a process, even if bureaucracy is the problem.
- Economists will try to fit a problem into Excel.
- Developers and software architects with experience in one type of architecture will try to shoehorn all problems into the same approach.
The list goes on and on. To elaborate, a good example of the last point is projects where people to database to database batch-integration because databases is what they know, even though some sort of messaging solution may be more appropriate in most cases.
Whats the point of this? Well, most people will tend to try to solve problems, even unfamiliar ones with familiar tools even if they are completely wrong and counter-intuitive, you do not solve a problem with more process if the problem is bureaucracy, or over-regulation with more legislation. It’s a problem that exists everywhere, at every level.
The solution? There are no simple ones, because most of the time people make implicit assumptions without even being aware that they are assumptions and not facts. But you can get a long way by trying to question yourself more, and understanding what assumptions you are making. That, and expanding your actual toolbox to incorporate a wider variety of tools will be the most useful things to do. However this is not easy, as people like familiarity, and most people actually don’t like change or learning new things if they seem challenging.. This means that people who are inquisitive, curious and prepared to ask the stupid questions and perhaps look a bit stupid in the process are worth their weight in gold.
London Housing Market: A Fool and His Money February 21, 2007
Posted by Wille in Investing & Economics.1 comment so far
Over the past couple of weeks I have been talking to mortgage brokers to see how much money I could potentially lend for a home. After working out that I have a budget of around £400 000 (of which I am uncomfortable exceeding £360K) I have duly gone out to look at different homes.
So far I have primarily focused on the area in which I am already living in, and I have to say I am almost certain I will not be buying around here, no matter how much I love the area. I live just a few blocks away from the northern side of Hyde Park (W2-postcode), which is quite an affluent area.
My findings so far? I have looked mostly at one bedroom flats, they tend to be in the range of £330 000-£380 000. What you are getting at the lower end of that spectrum are some really dingy looking flats that have poorly planned floorplans, are in need of serious investment and are generally quite small even for a one bedroom. At the upper end of the scale, the quality is a bit better, but there isn’t a dramatic difference.
To me, the economics of this simply does not make sense: I am currently paying around £1100 (including all bills and taxes) for renting a studio the same size as most of these flats. To buy the equivalent flat on the market would see me pay around £1700 a month in interest payments, taxes and other bills. Thats a 35% gap in cost between the rental and buying market! In other words, buying a home as a rental investment makes absolutely no sense, depending on the deposit, you would either struggle to be cashflow positive, or you would have so little leverage that your return would be worse than just putting it in the bank.
In a healthy market, the rental and buying costs should be in reasonable step with each other, clearly that is not the case here.
Furthermore, most banks will lend up to a maximum of 3.5 times your annualized income. Given a 10% deposit, this means that people making £80000 a year (that’s a $160K!) are prized out of the market even for the dingiest, stuffiest and smallest of one bedroom flats! Now, London is a rich city, but its not THAT rich.. Also, most flats seem to be going quickly, and most of them to people with no intention of living in them: property developers are buying flats without even looking at them first, in hope of making some cosmetic improvements and flipping the home on at a profit. Clearly a speculative market to say the least.
My personal conclusion? At least the area I am living in is hideously overpriced mostly based on the speculation of half-wits. I’m holding on to my money, at least when it comes to buying in my current area. There is a saying that “when taxi drivers talk about hot stocks, its time to get out”, well, at the moment I hear a lot of taxi drivers talking about hot areas for properties.. My guess is that the London housing market will take a hit at some point in the not-so-distant-future, when every idiot and their mother are trying to be “property developers” it is inevitable.
But then again, a fool and his money don’t belong together in the first place. .
“The Peter Principle” and why all large organizations eventually fail February 18, 2007
Posted by Wille in Corporate Stupidity, Entrepreneurship.1 comment so far
“The Peter Principle” states that in a hierarchical organization everyone is eventually promoted to their level of incompetence, most people have probably seen this, for instance when the brilliant developer is promoted to become a mediocre team leader or project manager. Another less known assertion of the Peter Principle is that creative and visionary people often reach their level of incompetence in their entry jobs, as entry-level jobs tend to be “conveyor belt”-type jobs mostly suitable for detail-oriented people. This means that the creatives and visionaries rarely get to the leadership positions they are most suited for, whereas detail-oriented people who have a hard time seeing the bigger picture quite often get promoted into “leadership”/managerial positions they are quite clearly unsuitable for.
To me, this quite clearly indicates yet another reason for “Creative Destruction”, where large incumbents eventually get beaten by growing entrepreneurial organizations in the marketplace: entrepreneurial organizations tend to be started and run by creatives and visionaries who are focused on seeing the bigger picture and creating without getting bogged down in process. Large organizations on the other hand, thanks to the Peter Principle eventually are entirely run by blind and mindless process, instituted by the detail-people promoted to a level way beyond their competence. A lot of people can probably relate to this: having seen a project that just seemed so counterintuitive, a plan with way too much detail that had to be followed straight into the abyss, or the product that was launched despite being utterly and totally useless.
The concept of Creative Destruction normally puts a lot of emphasis on innovation of the new-comer into the market, and the complacency of the incumbents in relation to this innovation. To me, this is all true, but at the end of the day, I believe that the Peter Principle is an equal part of the equation: It is not only innovation of others and complacency of the incumbents that conspire to shake up the marketplace.
The sheer self perpetuating incompetence and bureaucracy is as fatal as any other piece of the jigsaw in taking down large organizations, once it has gotten a foothold in an organization, it is like a malignant and aggressive form of cancer: most of the time it will not stop until it has left its host all but dead.
Lessons learnt from a (commercially) failed webapp February 16, 2007
Posted by Wille in Entrepreneurship.add a comment
About a year ago I set out to create Agendapoint, a simple collaboration webapp. I still think it is quite a nice little application, even though there are some features I would do differently in terms of usability. Today the application has not been actively developed since May of last year, and neither are there any plans to do so, but there are no plans to remove the application either (it costs nothing to have it running).
From a commercial point of view I learnt a lot by creating the application and trying to market it. A lot has changed in five years, five years ago you could pretty much get buzz simply by creating something, not so today. So, for a summary of what I learnt about commercial web applications:
- If it is not inherently viral (viral: as in value gets added by spreading the word, and the spreading is an inherent part of how it is used), it will take a lot of marketing effort and a good deal of money to get customers.
- If it does require marketing to get of the ground, the economics will have to be revisited. Offering something for free that costs you money to get used will not work. You probably need to be able to charge customers a premium for a good service, probably at least $25 a month on average if you’re not going to burn too much cash to acquire customers.
- Charging is probably a good thing: people who pay for something are more likely to actually use it and get personally invested in something, as they want their moneys worth. “Free” users are transient and fickle, and may never use an application twice.
- There needs to be something truly different and compelling about an offering, if its not, its doomed to be an also-ran.
Agendapoint may not have worked out as a money-maker, but it was definitely worth the learning experience, I only lost what I put in in terms of effort, and a few days worth of consultancy revenue to marketing and servers, but thats not a big deal. Apart from the pure commercial aspects, I learnt quite a bit in terms of usability, both from feedback from users, as well as from using the application myself, but that is a subject for another post..
A useful tool for anyone working as a consultant February 14, 2007
Posted by Wille in Corporate Stupidity.add a comment
This tool is brilliant everytime you are forced synergize real-time inititiatives for tough questions you really can’t answer..
Java Annotations - useful? If so, when? February 14, 2007
Posted by Wille in Java, Software Development.add a comment
Lately I have been dabbling around with Java Annotations that where introduced with Java 1.5. I didn’t really know much about it before, although I could see the usefulness from having used XDoclet years ago, which however flawed it was, was actually quite useful at the time.
My impression? Well, mixed. As far as I can understand from my limited exposure, you actually have to write the annotation processing yourself for your custom annotations, which invariably leads you to use reflection in some shape or form in most cases. This to me makes annotations feel a bit like some half-baked attempt at AOP, but without really taking it even a third of the distance.
On the plus-side though, I can see the usefulness of annotations given you have the annotation processing present, or can live with writing it yourself: Java has long been infested with a need to use various properties files or xml-configuration files for things that live in the twillight land between things that need to be soft-configurable, yet form an integral part of the application logic. Hard coding this kind of stuff is definitely wrong, but having lots of xml configurations doesn’t feel right either. In this kind of scenario annotations feels like the perfect middle ground: you annotate a class with metadata. To me this feels perfect for things like validation of fields through getters, or even configuring page-flows and actions in a MVC-framework (Something Stripes kind of does).
So to sum it up, I think annotations has its place, they are definitely a useful addition to the Java language, however I cannot stop the feeling that Sun could really have done much better, there is a smell of it being a half-baked and half hearted attempt at AOP, while lacking the energy and will to go the full distance.