Tuesday, August 14, 2007

Do Programmers have Make-Work, Anti-Foreign and Pessimistic Bias?

According to economists Bryan Caplan, all voters have 3 Bias. Do our programmers also have these 3 bias? They include Make-Work bias that means creating more programmer job always goods. My note: Do we really want to create so many programmer jobs that the world worst programmer can still find a programmer job. Actually there are always programming job which needs new skill and technical knowledge. They are not for a single hammer programmer.

Anti-Foreign bias means that oversea programmers is often lower skill and unable to write good quality program. Also Anti-Foreign bias can also means that VB programmers argue that Java is too complex and too difficult and too ineffective for development. Or the C++ programmer argue that Java is only a downgrade of C++. Or the Java programmer argue that Ruby on Rail is not suitable for enterprise application. My note is: Most are myths but some are true. [My own Anti-Foreign bias is against Java Annotation, but not Bob Lee's google giuce (some features are really better than my lovely Spring) or Graeme Rocher grails (I learn too much groovy that I can't miss how they are used in grails). The current Java Annotation implementation is too bad. In my current programs, I have already mixed too many unrelated Annotations in a single file that it look more like a messy sh-t.]

Pessimistic Bias means that programmers are always afraid that the IT world is ruled by Microsoft and all programmers become microserf. (My note: Microsoft will never rule the IT world becase it does not have the gun to collective microserf tax.) The java programmers are afraid that there are too many framework(strut, spring, webwork, etc... (believe me, the list has more than 1000 item) and the java language will not be ONLY holy programming chosen by GOD of programmer (Not Gosling, he is FATHER of JAVA) and java will be contaminated by Ruby or other scripting language. My Note is: Do a lion afraid that he/she will be eaten by you? No. Only those who do not run will be eaten by Lion of the Future.

In Bryan Caplan's book, "Myth of Rational Voter", if you have all these biases, you are a normal voter. You are qualified to elect US president. The above information is not a joke but a serious question. You can add more your favorite bias to them.

chris tam
Hong Kong

Sunday, August 12, 2007

Correct Incentive Mix For Programmer

According to the book "Discover your Inner Economist" that all people, including programmers, are responsive to both incentive. As the author writes, "incentives matter through the medium of how a person perceives what is at stake in the choice. It is not just getting the mix of incentives right. You also have to know something of the values or cultures of the people...". The main point for a good incentive mix for programmer is that we must know the values and cultures of the programmer. I think the correct incentive mix should contains:
  1. A reasonable salary and/or bonus. There are too many employers that think the sentence "Good job. Well done" is equals to salary.
  2. Meeting is always required by managers that want to show their contribution and involvement in the project. Also meeting is the only way for the managers to understand what have happened in the project. But none of them are incentive to programmer. The best way to provide incentive to programmer is to limit the number and time of all meeting.
  3. All human are social animal, including all programmer. No matter how poor a programmer communication skill is, he still need other programmers. An environment that help the programmers socialize easily is a really great incentive.
  4. All programmer need to have a sense of control on the programmer. A "sense of control" is always within the programmer inner economists. Don't let the "DEVELOPMENT METHODOLOGY" banner overrides all the programmer sense of control.
In summary the correct incentive mix should include reasonable money return, limit number and time meeting, social programmer environment and programmers have a sense of control of their program. Is there any other comments or suggestions?

chris tam
Hong kong

Sunday, August 5, 2007

How to make Guice and EJB and SEAM bloat and ugly

Although the following code is only an imaginary example code of abusing Java Annotation. But it may help Java programmer to prepare for the Java Annotation bloating. The Java Annotation bloating may hurt Guice, EJB, SEAM and etc... Those Java programmers who claims that Spring XML bloats may be backfired when they switch to Java Annotation blindly.
...

@Inject
@Transactional
@Stateless
@Column(name="foo",type="VARCHAR"...
@Criteria(type="manager"...
@DynamicInclude("Bonus")
@MyJTextField(size="12",...
@Validate(require=true...
@MyFormatter(format="...
....
public void setFoo(MyObject foo) {
...

What is the problem of the above code? All the Java Annotations are NOT modularized and the Java Annotations BLOAT. I think Java programmer must think carefully about this. Otherwise Guice will bloat, EJB will bloat and JBoss SEAM will bloat.

chris tam
hong kong