Over the weekend I upgraded Crucible, our code review tool, to the 0.9 release. Looks like it’s nearing 1.0 readiness. When I upgraded it on Saturday night I noticed they fixed an annoying bug where you couldn’t just delete a review. We had a few test reviews in the system that we wanted to delete since we were just showing people how it worked.
Deleting away I realized we’ve been doing less reviews over the past two months or so. Code reviews are not exactly your stickiest developer practice without some coaxing. It also makes a good point why pair programming especially with rotating pairs can be a really effective way to actually have a high level of code review. Since pairing is still very optional in our shop we’ll be using Crucible for a long time to come.
Paradigm: You get promoted based on your expertise as an individual contributer. You need to give up your focus on your technical work and spend the time on managing and developing your team.
It’s a well worn cliche that many technical managers don’t get this and I catch myself wondering if I’m able to walk the line. My response to this dilemma has always been to keep up with the technical aspects by coding, reading, and developing on my own free time. I rarely sign up for any deliverables on any project, and most of my contributions like code reviews, configuring tools, and writing up demos for internal training don’t put any project in harm’s way from my ability to deliver.
This applies to aspects beyond coding, because I find it even easier to fall back into project management/Scrum Master duties because I hate to see a project struggling with delivery. Probably 50% of the time I’m covering some PM role on a project with one or more of my developers either because a PM simply isn’t available or they don’t have time to really dedicate to a project.
With all these conflicting pulls on my time I hope I’ve been able to keep the focus on management and developing my team, but sometimes I wonder if I haven’t let some larger strategic things slip through the cracks because I let myself get pulled in too many directions.
O’Reilly still holds the premier tech publisher spot. I’m sure in marketshare, they are still well on top, but they do seem to be losing mindshare and far fewer people think of them as THE tech publisher. I regularly pass over O’Reilly books on the shelves in favor of other publishers, something that would have been unthinkable 10 years ago. Why?
O’Reilly used to be pretty much the only tech publisher I paid any attention to. I still confess to love the animals on the covers. Today though on a recreational browsing of the local Borders I tend to look at books by the following publishers in order:
- Pragmatic Programmers
For some reason I’m more in alignment right now with the Pragmatic Publishers from Ruby on Rails to TextMate. Manning tends to cover technical topics in depth with their In Action series even on something like iText or iBatis. Apress isn’t afraid to put out books on things like Wicket or Common Lisp. I still really like the Head First Books especially for getting less experienced developers up to speed, but much of the most compelling topics in O’Reilly’s upcoming lists are actually from the Pragmatic Programmers.
In the old days I could just look for animals on the covers. Today, I can hunt among multiple publishers. Now if I could just find management book publishers that showed any signs of consistent quality.
I had one of those weird cross-over experiences last night when I came across a small note in a post about the history of Java’s origins. Ray Cromwell is quoted as saying:
I program in a language that I would actually call “JetBrains Java” since I find I must drop into Live Templates often to refactor and reuse code that otherwise can’t be abstracted due to Java’s limited expressiveness.
After getting so used to snippets in Textmate I’ve come to really rely on them. And I never would have really gotten the power of snippets until I saw a few screencasts. Now I can use that same technique to use in IntelliJ IDEA even though I’m sure they’ve had the feature for several years beforehand, I just didn’t really see how it could be so helpful. Apparently Eclipse has a similar template feature as well that we should look into in RAD.
“I just wish someone in IT could make the calls on technology.”
That was the statement from one of our product managers, having sat through a long testy meeting where technical directions got brought up and debated at length. Testy enough that our architect at one point stated:
“So I’m just a researcher, well then see if I help any developers in the future.”
The end point was that the product manager just didn’t care, she just wanted someone to be the final arbiter.
We have a sort of classical dysfunction when it comes to deciding on architectural decisions:
- Our CIO often tries to set technical architecture without much consultation which often goes over fairly poorly.
- Our architect group is out on the bleeding edge researching the newest ESB offering or enterprise rules engine. They forget they have to actually sell/convince all the rest of the development organization that their ideas have real value for the business and are not just chasing the newest technical toys.
- The application development division wants much more input into the process and the ability to give real feedback on what directions we head. Since there’s a lot of developers even if you just count leads this lends itself to more of a consensus model which takes more time. And developers want tools and architecture that make them more productive and able to deliver high quality code, not just resume fodder like experience with SOA business activity monitor.
The reality in the last few years that I’ve worked at the organization is that we’ve been able to swing the pendulum back towards the real needs of developers in most cases. Powerpoint slides with lots of wonderful layers are nice, but they don’t produce working applications. Still we constantly battle to not have tools and architectures imposed on us.
Anyway the product manager made a great point, we really need to present one answer at the end of the day to the business.