My seven year old son made this comment after brushing his teeth. He had a small container of floss that he was swinging around as he rattled on and on about being the floss puppet who cannot lose.
You’d swear I was making this one up, but my wife was there to hear it along with me today. We were getting out of the car this afternoon to go to the store and our seven year old, EC, asks this question out of the blue to his mom and me. Ummm…
One day I’ll write more about EC to give a little background on him. As you might have guessed, based on all of his quotes I’ve posted here (and that’s just the tip of the iceberg), he’s a pretty interesting little guy. For now, let’s just enjoy the quote machine that is my son.
My seven year old son made this emphatic statement after re-examining the picture shown here. Mind you, he requested a caricature be drawn of he and his sister when we were in Orlando, FL earlier this summer. I guess he didn’t like the results.
Everyone who has seen this picture so far agrees that it captures both EC and his sister perfectly. I’ve commented that it’s somewhat like Pinky and The Brain — with EC as The Brain (complete with the scowl) and his sister as Pinky (innocent, eyes wide open look)
If you ever want to run a Rails Rake task on a schedule via cron, here is the entry you need to make in
*/5 * * * * cd /var/www/apps/rails_app/ && /usr/local/bin/rake RAILS_ENV=production rake_task:goes_here
The above snippet will run the given Rails Rake task using the production environment every 5 minutes. Note that you need to first change the directory path to your rails app and then call the rake task. This may all be common knowledge but it was new to me.
I had the honor of working with Chad The Developer for nearly two years. Yes, Chad THE Developer. His legend will live on as his last day working at the Joplin office is today. Memorable moments of Chad include:
Chad does not copy and paste code. He will re-type code in because he has been bitten by copy and paste so many times. I’ll never forget the day I was sitting next to Chad and watching him meticulously type, character for character, a method into his class that was displaying on his second monitor. I said, “Dude, what are you doing?!” Everyone around us started laughing. They knew exactly what Chad was doing.
Wireless power. Chad was evangelizing an incredible new invention he just heard about to everyone at the office. No one believed him. I’ve been told (since I didn’t work there at the time this happened) that Chad said you would be able to get wireless extension cords at Radio Shack in the not so distant future. I don’t know about wireless extension cords, but it appears Chad has the last laugh as wireless power is definitely real, no matter how funny it sounds.
“My integration tests won’t run.” This is a legend to me. I wasn’t there to experience this one, but there are a number of people who witnessed this one a few times. Why wouldn’t Chad’s integration tests run? Good question. Apparently, it helps to have WebLogic started when your integration tests depend on WebLogic in order to run.
It takes a very confident man to wear white Don Johnson, Miami Vice style pants to the office. Chad did this not that long ago after returning from his vacation in Mexico. Apparently, he hadn’t left the spirit of the beach behind. I remember seeing Chad walk past my desk in his ever so stylish white pants. Out of shock and instinct I called out, “Hey, Panama Jack.” The best part is that Chad turned around immediately. It was as if my words brought him back to reality. He was no longer strolling the beach with a Corona. He was back at work. He proudly told me that he wore those pants all the time while vacationing in Mexico. I don’t believe he’s worn them to work ever since.
Hot Pockets. When I first started working at the Joplin office I could’ve swore Chad was on a Hot Pocket diet. I thought maybe he was some sort of Hot Pocket version of Jared, the Subway guy. I haven’t seen Chad tear into a Hot Pocket in quite some time. I think it has something to do with my virally spreading the video clip of Jim Gaffigan’s stand up routine on Hot Pockets. I had everyone watching that video clip, where Gaffigan makes fun of Hot Pockets and makes us all laugh in the process. One day, after seeing that video for probably the 20th time, Chad turned around to all of us in the room and vigorously defended his beloved Hot Pockets. Chad couldn’t understand what Jim Gaffigan could possibly have against such a tasty treat.
Chad is a good guy. He’s a good developer too. I wouldn’t give him such a hard time in this post if I didn’t think very highly of him. I wish him the best of luck at his next job.
Ummmm…OK. I’m not sure that answered my question to my seven year old son, which was, “Do you have a lunch bag for me to put your lunch in?” I double checked that I heard him correctly. He said, “Yeah, I haven’t cleaned out my hydrogen foil yet.” I wish his teacher well this year.
EC asked this question in the car last night after hearing me tell my wife about the “Lawn Ranger” who lives close by. Even better than EC’s question was his mom’s reply, “No, that would be your dad.” I feel loved.
My favorite agile software development topic of them all — tools. More specifically, agile project management tools. If you’re old school, you bust out some index cards, some butcher paper, some writing utensils, and you get to work. If you’re trying to use one of the simplest of agile project management software tools (that most are introduced to as part of their Scrum training), then you open up an Excel template. If you’re looking for something a bit more comprehensive or even just a little more automated, then you do a search on Google for “agile project management software”. You click around, see quite a few options, look at some screenshots, screencasts, and likely research mailing lists and blogs to see what people think of these tools.
At some point you’re likely tempted by some vendors making amazing promises. These vendors aren’t simply selling software project management tools; they’re selling you the keys to enterprise enlightenment. They show screen after screen packed full of nondescript icons, drop down menus, and incredibly detailed forms that make you wonder how you got by in the past without tracking all that information. They integrate with version control systems, integrated development environments, issue trackers, testing tools, portfolio management systems; some will even have integration with customer relation management systems. What more could you want? A lot more. Actually, a lot less. But, as the saying goes, “less is more.”
The problem I see with a number of the agile project management software offerings available today is that they have lost sight of what it is to be agile, at least when it comes to managing their own products. It seems like these solutions are trying to be all things to all people. Featuritis has hit these products in the worst way. I think the UI designers of these products were forced to get their daily dose of inspiration through slide shows of Enterprise Resource Planning (ERP) software screen shots and other “enterprisey” offerings that cause many of their users to go home each night wondering why they can’t master the art of using the software to get their jobs done more efficiently.
Beyond the usability issues I see with this new breed of agile project management tools and the attempt to “be all things to all people”, I think these tools are missing the mark in an even bigger way. If you want to provide the ultimate agile project management software, then you might as well leap frog the old project management tools by looking at what the open source community is doing and using. The offerings by sites like java.net, Sourceforge, and many other open source project hosting sites are where these agile project management vendors likely need to turn their attention to. There is a reason tools like Trac, Redmine, and others are utilized by more and more open source projects to manage development of the software. These tools acknowledge the need to manage the software development process in a distributed environment where there can be many contributors and many users. The focus of these tools does not start with a project manager view of the world, but rather with a project contributor and user focus. This means that an issue tracker becomes the central nervous system. Version control is a first class citizen, not something you leave for third party integrations. Mailing lists, forums, and RSS/ATOM feeds are often key features in these open source software project management tools.
I will admit to being biased in this post. I am not a fan (in general) of most software that is aimed at the “enterprise.” I believe that many of the best practices in open source software development should be adopted by agile tool vendors looking to address the problems faced by those involved with software development projects. I’ve held off writing a post about agile project management tools for over a year now, but after recently re-evaluating the options out there I felt it was time to give my thoughts on the topic. It’s a way more popular topic than it should be in my opinion. It’s much easier to talk about the merits of one tool over another than it is to address the more difficult (and more critical) challenges involving changes required in human behaviours.
There’s at least a couple of hours of my life I’ll never get back thanks to Microsoft Vista and everything that is wrong with the world of Windows. I was helping my father-in-law setup his new laptop (running the ever so awesome Microsoft Vista) and wireless router — remotely. I wouldn’t wish this kind of pain on Beelzebub.
While Vista is not solely to blame for my experience this evening, Microsoft as a whole takes a majority of the blame. They have created a user experience that is chock full of “Are you sure you really want to do this?”, “Blocked suspicious activity”, and every other pop-up message known to man. Some will point out that many of these messages and pop-up windows are not from Microsoft, but from stellar software like anti-virus, anti-malware, anti-everything Windows add-ons that come from the usual suspects: Symantec, McAfee, Micro Trends, etc. Well, guess who built this cestpool of an ecosystem now commonly referred to as Windows that requires such nonsense?
The only saving grace in this whole experience was using the Copilot service Joel Spolsky’s interns originally put together. While not the best software experience on the planet, it did work fairly well (albeit slow) and made a near impossible task (of remotely supporting a Windows Vista newbie) possible. Compared to the Vista experience, Copilot felt like a gift sent straight from heaven.
P.S. Note to the IT industry as a whole: When referring to WiFi security, can we be consistent in our use of the words: “key”, “password”, and “passphrase”? These words are often used interchangeably and confuse the life out of ordinary users as a result. Pick one and stick to it.
In my last post I wrote about user stories and how it’s easy to write a user story and forget to include the value statement. Now that we’re all writing user stories with value statements, I thought it would be interesting to look at another phenomenon I’ve seen far too often when it comes to user stories – their death. Yes, all good things must come to an end, but the way too many user stories die is not fitting.
Let’s take the example user story from the last post, which was from the Apple iPhone product owner (who am I kidding, Steve Jobs):
As an iPhone 3G user I want to be able to make VoIP calls over the 3G network in addition to wi-fi so that I can save money by not using my crazy expensive voice minutes.
The team working this user story thinks they’ve got it during their backlog selection. They’re excited to put the screws to the carriers as they prepare to expand beyond AT&T and turn the cell phone industry on its head. The team does their task breakdown and they’re off and racing. Daily scrums are happening, team members are communicating, impediments are being raised, tasks are getting done, and all is good in iPhone VoIP call land. The sprint review rolls around and the team is ready to show off their solution. They demonstrate making VoIP calls on a 3G network. Only one little problem. The team mentions that in order to complete this story in time they decided it was best to use a VoIP service provider that would make the user experience far superior to any the team could develop in a reasonable amount of time. The VoIP service provider charges a monthly fee. On top of the monthly fee there are hidden charges around certain types of calls. The product owner does his own demonstration following this. He demonstrates how the iPhone 3G can be used in combat by chucking the sleek devices directly at the team members’ heads.
So what happened? The user story was viewed during backlog selection, placed in a sprint management tool, and forgotten about until the sprint review. The team understood what they were doing, or so they thought. They were focused on completing the tasks to get the user story done. The team lost track of the actual user story – out of sight, out of mind.
The trick is to make sure the user story doesn’t get lost throughout the sprint and die a quick (yet too often) painful death. I haven’t figured out how to do this. Posting the user stories up on boards/walls is one idea. Temporary tattoos (that last the length of a sprint) of each user story on every team member’s forearms is another. Wait, that’s it. Sorry, I’ve got to make some calls now. My temporary tattoo parlor is calling.