Tech Lead Checklist

I recently read the article Tech Lead Checklist to Kick your Team into Gear, recommended by my tech lead. Here are some things our team does and does not do.

Daily

Require written standup reports each day Nope. We don’t do this. Once every other week I might write something up but it contains more than what I did that day. And other times when someone (one person in particular) can’t attend our scrum they will send an email.
Attend a daily chat Yup. That’s our daily scrum.
Resolve roadblocks Yes, I do this.
Look at individual detailed activity Really? I peruse Fisheye occasionally, but I don’t think I do any “detailed” investigation.
Move requests to ticket system Yea, I usually put in “issues” which can be turned into backlogs during sprint planning.
Let team members select their own tasks. We try to let our developers do that. But some ask what they should work on and I do assign tasks.
Watch for lack of commits and ask developers to break into smaller tasks I believe in atomic check ins. However, without a “quiet period” the continuous server will keep rebuilding. Plus it makes it harder to say “this commit was for feature X” when really there were 10 such commits. I’ve often wondered about using Git locally to make these atomic commits and then checking them to SVN.

Weekly

Review tickets I usually review ones that are specific to the project I’m most working on more frequently than weekly.
Ask specific developers to plan large tasks Done by me.
Post team tasks completed and what is planned for the next week I can’t say we do this.

Bi-Weekly

Find developers interested in new projects We often are asked what sounds interesting to us and we try to pass that on when talking about features of a project.
Do “onboarding” Our tech lead did a great job with this a year ago when I joined his team. I’ve tried to create Eclipse templates that others can use. We would need to work on this more if we were expecting any developer to join the team.
Evaluate trial developers We don’t have any trial developers but we look at our current developers and assess them. If we don’t think they are working out, we are willing to try other developers.

So what does this mean? It means I’m already doing a lot that a tech lead should be doing, so I’d be totally comfortable taking that position. (Hint, hint, wink, wink, nudge, nudge.)

First Scala

I was hoping for

def sayHello(name) {
  println("Hello, " + name)
}

("world", "Adam").foreach(sayHello)

but will have to settle for

def sayHello(name: String) {
  println("Hello, " + name)
}

List("world", "Adam").foreach(sayHello _)

moz-proxy issues

I like Firefox. A lot. Even when it was named Phoenix.

I even use it at work (using PortableApps.com).

But some sites (ok, only StackExchange sites) I visit I get multiple popups asking for my user name and password. Because I’m behind a firewall I have to enter my credentials, no big deal. But they don’t work! So I have to hit Cancel. Not just once, but, like, 4 times!

Continue reading

Spiders

I don’t like spiders. I especially don’t like spiders that crawl out from the shelves above my desk, drop down to my desk and then disappear when I’m trying to sweep it off my desk onto the floor so I can step on it. I hate those.

Corporate Cup

Have you ever had a goal and did everything you could to reach that goal? Yea. Neither have I.

I decided to give it a try by setting a goal of running in the 2012 Corporate Cup Run.

I just got back from my 5th run. 1.5 miles around the neighborhood. And I can honestly say, I hate exercise. I don’t get any pleasure (read: endorphins) from exercising. I am listening to Java Posse so I did get a couple of chuckles along the way. But boy am I beat.

What the kids want to be when they grow up

After asking Joel, his first response was, “What do you want to be?” When I said “computer programmer” he said I was already one and I was like “Alright!”.
He had to think about it but eventually said “Rock star”. :)
Alyssa said she wanted to be a teacher. A “teacher-teacher” not a “teacher-helper” like mom. :P

Sliver Moon

The moon blushes behind the clouds
I’ve caught it in a vulnerable state
The smooth curved sliver
A newborn’s round bottom
Or the sculpted lady’s breast
I divert my eyes from her beauty
Though neither us should be ashamed

Quartz ‘phoning home’ at start up

Since I don’t want to register with the site just to post a comment, I’ll leave it here.

To follow up with the discussion, you need to set your Spring config like so:

<bean id="quartzScheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
    <property name="triggers">
        <list>
            <ref bean="XXXXXXXXXXXXXXXXXXXX" />
            <ref bean="XXXXXXXXXXXXXXXXXXXX" />
        </list>
    </property>
    <property name="autoStartup">
        <value>${service.quartz.autostart}</value>
    </property>
    <property name="quartzProperties">
        <props>
            <prop key="org.quartz.scheduler.skipUpdateCheck">true</prop>
        </props>
    </property>
</bean>

Quartz ‘phoning home’ at start up.

Performance = Optimization?

From http://www.javacodegeeks.com/2011/07/top-97-things-every-programmer-or.html:
It’s never too early to think about performance – Rebecca Parsons

From Effective Java:
More computing sins are committed in the name of efficiency (without necessarily achieving it) than for any other single reason—including blind stupidity.

—William A. Wulf [Wulf72]

We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil.

—Donald E. Knuth [Knuth74]

We follow two rules in the matter of optimization:

Rule 1. Don’t do it.

Rule 2 (for experts only). Don’t do it yet—that is, not until you have a perfectly clear and unoptimized solution.

—M. A. Jackson [Jackson75]

When I started programming I thought the goal was to produce code that was fast. So I wrote concise code without regard for readability. Now, I lean toward readability. I guess I’m just trying to differentiate performance and optimization. Performance is good. (Premature) optimization is bad. I struggle with this because I find it easier and more enjoyable working with the details and not at a system level.