Thursday, April 3, 2008
I posted this question on LinkedIn this morning, and have already received a ton of answers. I thought it would be good to ask here, too.
As a manager, what would you like the software developers under your management to learn? This might be knowledge of some specific technology, some software engineering skill, some other skill or knowledge, or what?
Your answer doesn’t have to apply to all of your developers. Pick something that will make a noticeable difference in your organization’s effectiveness. And please be as specific as possible.
Of course, some of the answers were general advice rather than specific things at the answerer’s organization. But where the answers were specific, I typically followed up with two more questions.
What steps are you currently taking to help developers learn this?
What steps do you think you should take, but aren’t yet, for some reason?
I’d like to hear your answers, either as comments to this blog or privately in email.
Tuesday, March 11, 2008
David Maister asks, in a business turndown, do you respond with cost-cutting measures, such as layoffs of junior personnel, or do you reduce the profitability at the top, redirecting the efforts of your top people to long-term growth while the junior people attend to the reduced amount of immediate work? As he says,
As always, I have to stress that this is not a moral issue but one of pragmatics.
As I read through the comments on this post, I came across one that noted this was a case of
The classic fight between short-term “success” and long-term prosperity.
Suddenly I was struck by the parallels between this dilemma faced by business owners and those faced by software developers. (Continued)
Thursday, February 28, 2008
It is good when we learn from our experiences–much better than when we don’t learn from them. I recently wrote about learning, or failing to learn, from observing others. A recent discussion on the scrumdevelopment yahoogroup got me thinking about another way to learn from experiences, and that’s learning from the experiences of others.
The discussion I mean started in the middle of another thread, when Clay Dreslough asked about Pair Programming.
But I have never had any success with actual Pair Programming.
So … am I missing a key component of XP? Or have other people found the same reticence with adopting Pair Programming?
Are there some valuable gains here that I’m missing? And if so, how would you recommend getting programmers to change their habits? (Continued)
Wednesday, February 6, 2008
Esther Schindler quoted me in her article, Getting Clueful: 7 Things CIOs Should Know About Agile Development, on CIO.com. Unfortunately, my advice got altered a little in the editing process. She says,
Consultant George Dinwiddie from iDIA Computing suggests using a burn-down chart to track project progress.
I actually recommend a burn-up chart to track project progress, and a burn-down chart to track iteration progress. There are specific reasons that I think a burn-up chart is superior to a burn-down for tracking over the course of a project or release. I’ve been meaning to write a long post about this, but haven’t found the time. I just wanted to correct the record, in the mean time.
The full comments of my note to Esther: (Continued)
Tuesday, January 29, 2008
I know this has been bandied about hither and yon by lots of people. But I still see statements like the one by James Bach quoted on Matt Heusser’s blog that “the part of the testing problem they address is a small fraction of the whole.” Well, yes. Of course it is.
Maybe that’s because Test-Driven Development (TDD) isn’t a testing technique. It’s a software development technique that happens to create a safety net of unit tests.
Or, to paraphrase Captain Jack Sparrow, (Continued)
Sunday, January 27, 2008
The subject of determining compensation for developers on Agile teams comes up from time to time on the mailing lists. I’m no HR specialist, and I don’t have any easy answers to this question. It seems certainly true that some people will have provided more value than others and should therefore be given more reward. It is also certainly true that if the reward system is geared only toward individual achievement, then teamwork will suffer. Beware the law of unintended consequences.
There’s a whole class of arguments, however, that can be discarded rather easily. (Continued)
Tuesday, January 22, 2008
A while back, I was working with a young and cocky software developer. He was a smart guy, and sure of his abilities. He had seven years of Java experience, he said, and he knew how to write code.
As he was a new member of the team, I described the strategy I’d planned for a bit of code. I showed him what I’d already written, and asked him to complete the functionality.
“But I can do it another way.” And he described a different technique. (Continued)
Tuesday, December 25, 2007
Some of you may remember that I started a house construction project. Things are moving very fast, now, and the actual construction may take less time than it took to get all the necessary permits. So far, the project’s about 100% over the time budget. And people say that software development should be more like the construction industry!
But the fact that the construction has run slower than expected is not the reason for this post. Neither is the fact that this project has been consuming a large portion of my attention, and hindering posts on this blog.
This post is about an example of refactoring found in the house construction domain. (Continued)
Monday, December 3, 2007
Our teams sometimes have multiple projects. I am wondering what is the best way and what is the SCRUM way of handling this. My feeling is that the best way is to have a single backlog per team (even if this means that in a sprint the team is working on backlog items belonging to multiple projects). I think the purists will recommend splitting the team and having multiple backlogs.
That’s what Gilad Gruber asked on the Scrumdevelopment list. This question reminded me of a client I once had. (Continued)
Saturday, November 17, 2007
Sometimes people just won’t do what you want them to do—what they should do—no matter how hard you try to persuade them. Why is that? (Continued)