You are hereWork


Google Web Toolkit (GWT) and JSON Serialization

Anyone interested in JSON serialization for Google Web Toolkit should give GWTProJsonSerializer a try. My company, Integrity Digital Solutions has allowed me to improve and contribute back. I have finished a major improvement to allow serialization of various map types and enumerations. I have also added the ability to serialize lists of lists or lists and so on.

Finally, it will also now serialize ArrayLists and HashMaps with no class implementing the JsonSerializable interface. This all means you can easily serialize complex data structures in GWT. Hooray!

Cross Cultural Experience In the Bathroom

Sometimes cross-cultural experiences can make for some of the funniest exchanges. Sometimes what is appropriate in one culture is just completely inappropriate in another. Beware, as many of these exchanges, this one is rated PG.

I was in the bathroom at work the other day out of the vision of those walking in the door. I thought I heard two men walk in. After a couple of seconds I heard each say a polite, "Hello" to the other. One voice I recognized as a relatively new coworker. The other was the voice of a small, old black man.

The next thing the old voice said was, "So, how big did it get?" After a couple of seconds, my large, tall coworker replied, "How big did what get?" "Your peter," the old man replied. Yes, you did read that correctly. There was a long, long silence. I was dying trying to hold in my laughter.

After a couple of seconds, the embarrassed old man apologized saying, "I didn't mean anything by that. I was only joking" Clearly, the old man had received the appropriate social punishment for such a statement.

This made me think about how I would react. In general, I don't really like to talk at the urinal, although, some would hold a perfectly normal conversation there with their pants unzipped. This is a good time for me to try to practice some spiritual discipline and love the guy anyway and just carry on as he does. Men should be forgiven if they violate a man-law.

It helps to be forgiving to imagine my grandfather standing at a urinal while some young guy comes up and says, "How's it hangin'" You can imagine the rest of the conversation...

What's Your Handicap?

Second to "How are you," this may be the most asked question on a golf course. What if people asked you about your handicap at work. I am not talking about something for which you might be sued. I am talking about your work handicap.

In my thinking about project management, I have wandered upon the idea of a handicap system for programmers and maybe even for everyone in a company. When employees are on salary, many times, there is little incentive to do your best work beyond "the good of the company" or pride in your work. Sometimes you just need more than that.

I am thinking about adding two possibilities. One is the calculation of a handicap base on how quickly you get your work done. If you follow one of the agile methodologies, you can control quality with testing and metrics. If you don't do those things, you might need to find a way to add quality to the handicap. The handicap introduces another level of pride in your work and maybe even some friendly competition. It might also give you a basis for incentive programs.

Secondly, I have thought about introducing a work week based on production hours instead of clock hours. This would be how "par" was set for the handicap. You might decide based on your own project tracking history that 25 budgeted project hours were all an average programmer could accomplish in a week. So you set that as par. Then, if people want, they can go home after they have completed 25 project hours. If they want to improve their handicap, they can stay and work more.

There are two requirements for the handicap system is good management of project requirements. You would have to make sure that new work was not just slipped into someone's workload without an adjustment in the budget. You would also need good, objective budgeting practices.

However, I think those are necessary parts of a well run project anyway. I can't see how a company would lose. Employees gain three new incentives: time, pride-in-work, and fun competition. They company gains an objective method for rewarding exceptional employees. After all, do companies pay people for the hours they spend inside the building or for the work they are doing while there.

Poker at Work

Since it has been crunch time at PDI, I have been thinking a lot about project management. I have been thinking about good management and bad management. One practice I have seen makes me think of the quintessential aspect of poker: bluffing.

Now it is a known fact that people are lazy and will not work if they are not under pressure. So, constant pressure is necessary for top performance. If developers are not under pressure, they will play on their computers and talk about geek stuff without actually developing any real product because developers are undisciplined and do not care about the company's financial condition. Long-term vision is not their strong point, so aggressive deadlines are necessary. It doesn't matter if the deadlines are not reached. Project slippage only further motivates programmers because many of them have an overdeveloped sense of guilt and loyalty. You can channel that by stressing the importance of the deadlines and feature set to the company. When the project slips, they will only work harder. Many times developers can accomplish months of work in a week or two if those weeks are beyond a deadline. This is the appropriate way to motivate a developer.

Management knows nothing about software development. First of all, they give us a list of features and a deadline. We are told to make it work. No one even really asks how long it might actually take to do what is described. The specs are vague in the best cases and incorrect in the worst. The truth is, management does not know what they want, and nobody knows how long it will take. In the end, what gets done will get done. We will end up working our butts off at the end. The stories about all-nighters from this project will just be worked into programmer-lore. Management can't sell incomplete software so we will slip a few weeks. Management won't get all the features it makes up as we go along. Odds are, I'll be writing programs 1, 5, 10 years from now no matter how a single project goes.

This is the state of many teams. Is ours this bad? None of these statements are quotes, but some of them could be. I have heard things like this from both sides.

Putting Your Best Foot Forward

It is not uncommon at work to get an email that a customer is coming through to view our operations. We are advised to clean up our work areas and look tidy. Many times the email includes an admonition to "put your best foot forward."

As you might imagine, I bristle a little at this thought. I think, "How hypocritical!" I should just act the way I normally act. Corporate America is so fake. We have to put on a show for the customers, but we can slack off the rest of the time. I smugly reflect how if I ran the company things would be different.

However, when I look for evidence to this effect, I must admit I come up wanting. While I do try to be as honest as possible, I do, at times fail. Many times I hold my tongue when I should speak because I am afraid of what others might think. I am probably the worst at managing my image. I am, and have always been, very conscious about how my actions appear to others. I kick myself when I say something stupid. I am especially irritated when I do so in front of a person I respect or, gasp, with whom I wish to make a good impression.

Nor is this isolated to the public realm; I have recently realized over the past few months how many of the conflicts with my wife are due to my own hypocrisy. Sometimes, I get angry and defensive because I am afraid Courtney will see how I am deficient in some way. Other times, I get angry or defensive because I think she is putting pressure on me to do something I don't really want to do. I don't like the implication that I am a bad husband, so I fight vigorously to not be seen as such. Why not just be honest? More often than not, she didn't even mean to imply that I needed to do something.

So, Is my CEO wrong for asking us to dress up pretty for the customer? I still don't like it, but it appears that I have my own problems to worry about, so I'll just clean up my desk and move on.

<!-- technorati tags start -->

Technorati Tags: , ,

<!-- technorati tags end -->

What's SOL mean?

I was sitting at a table with one of our VPs and a couple of consultants when one consultant said, regarding a customer's situation, "Then they're SOL."

Now, I was raised in a some what sheltered environment, but at 30 I've heard just about everything. Considering some of the movies I watch, I think I have seen and heard just about everything, but apparently "SOL" has somehow slipped through the cracks.

So, I asked, "What's SOL mean?" There was an awkward silence, and everyone looked at each other as if to say, "No, you first." I don't know if the hesitation was because of the corporate setting or because no one wanted to offend my virgin ears. As the highest ranking officer, the VP explained that it meant they our out of luck and said that this was the difference between state schools and Baylor.

I couldn't believe it. Once again, I accidently reinforced my image as the nice guy who probably doesn't even know how to sin. It is almost as if people like to think of me that way. Is it possible for people to see me as a real human being who like them is desperate for the grace that only comes through Christ.

There are definitely times when I wish I had the radical-change testimony, but I am thankful that God has saved me from some of the consequences of sin that I did not commit merely because of my sheltered upbringing and often self-righteous obedience. For this I am all the more in need of God's grace.

Progress is a Vector

For the non-mathematicians out there, a vector has magnitude and direction. A scalar has only a magnitude. This sounds like some sort of quote. I have never heard it, so I guess I will take credit for it. If you are trying to get somewhere, and you just run fast, you may actually be delaying your arrival. Why? Because you may not be going in the right direction.

Sometimes, at least at my job, progress is mistakenly interpreted as a scalar. This means that it as long as you are running fast, things are OK. The problem is that later you find out that all you have been doing by going fast is putting more distance between you and your destination. Now, don't think that we are complete fools at PDI, we do seek to set out in the right direction. In fact, we look at the map, compass, stars, and everything thing a good explorer uses to set our course. The only problem is that sometimes, we leave our instruments at the dock. We don't really check them until we run aground somewhere and borrow the instruments that are available.

This is why Extreme Programming's concept of steering is so important. You check your course against the correct course (the customer's needs) and adjust along the way. The more often you do this, more efficiently you get to your destination because all your work is heading in the right direction.

Sometimes it is better to go slowly and more precisely in the right direction. Otherwise you can spend more time recovering from your speed in the wrong direction.

Vocal Instant Replay

On many occasions I have wanted a device that I have yet to see invented. I suppose I could write the software for my Pocket PC, but I am not sure that would suffice. I'd prefer a special device.

The Web 2.0

<!--CTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//E--><!-- Converted from text/rtf format -->

Sorry for all the boring posts, but this is pretty interesting.  If you are interested in where the web is going, read this article.

Work Enthusiasm

Lately I have had a new enthusiasm for work. It feels sort of strange to be thinking about job and technology related ideas so much. Both going to Users Conference and seeing our users actually using our software and going to PDC and seeing some exciting stuff from Microsoft has really re-kindled my creativity with respect to work.