The last place I worked, I kept my James D. Watson bobblehead on a cubicle divider, next to a SpongeBob bobblehead that belonged to a colleague. Everyone who saw these two guys recognized SpongeBob, but not one person ever recognized James D. Watson. I mean, they knew it was someone named James D. Watson because his name is right there on the base, but despite the fact that he’s holding a double helix structure, nobody recognized him as James D. Watson, Nobel Laureate and co-discoverer of the structure of the DNA molecule. (Ironically, one of the main reasons I got into software development was the opportunity to work with smart, educated people.) I brought Watson with me to the place I work now, but unfortunately I accidentally knocked him off a credenza one morning and his head broke off. I tried a couple of times to glue it back on… Read more →
EppsNet Archive: Software Development
Nerds
Someone left a box of Nerds on a cubicle wall in the IT department. (The door in the back left is my office!) What is that supposed to mean? We are not (just) nerds! Read more →
Essence of Lean
From Alan Shalloway: Essence of Lean for People Doing Scrum Lots of concurrent tasks cause waste Focusing on removing delays will remove waste Adding value and getting feedback quickly is important If you make a mistake and don’t attend to why you made the mistake, it will likely repeat itself Minimizing work in process (WIP) is a way of improving efficiency and minimizing risk Read more →
How to Be a Good IT Customer
There’s a guy at work who tells me he’s the best IT customer in the organization. When I ask him why he’s the best IT customer, he says it’s because he understands that we in IT are very busy so he doesn’t bug us too much. That’s funny because the person I think is our best customer is just the opposite — she knows what she wants, and she doesn’t mind being difficult if it leads to better results. Yes we’re busy, but we’re trying to do this stuff as well as we can do it and it helps to get a sense from the customer that the work is important and that doing it well is worthwhile. Read more →
I Had a Great Meeting
I had a great meeting today — eight women plus myself. That’s not why it was great though. These ladies want to launch an online Education Room with webinars, a speaker directory, announcements of upcoming events . . . they have none of the content ready . . . and they want to launch it on Jan. 1, 2009. So instead of talking about how they’re planning to get the content to me so I can build the thing, they’re saying things like, “When you hover over a webinar link, it will display a description of the content — like on Netflix . . .” Netflix. Right. So I say, “You’re not gonna get that.” Oh, they loved it! They laughed and laughed. They knew it was ridiculous, they just wanted someone to tell them it was ridiculous. Women love a masterful man who’s good at his work. Thus spoke… Read more →
Software Tips from Bjarne Stroustrup
Here are 38 tips from the designer of the C++ programming language. These in particular jumped out at me: [5] Don’t try technological fixes for sociological problems [8] Design processes to encourage feedback [9] Don’t confuse activity for progress [10] Don’t generalize beyond what is needed, what you have direct experience with, and what can be tested [19] Use existing systems as models, as inspiration, and as starting points [22] Design for change, focusing on flexibility, extensibility, portability, and reuse [27] Keep it small. Don’t add features “just in case” [29] Repeatedly review and refine both the design and the implementation [31] Experiment, analyse, and test as early as possible and as often as possible Read more →
No Accountability Without Volition
There is no accountability without volition, you’ve noticed, right? You can’t go “You got to ship that by November 1st and I am holding you accountable.” It doesn’t work that way. You can’t hold someone else accountable, you’ve got to hold yourself accountable. It’s just like you can’t motivate someone else; you got to motivate yourself. And the more that you motivate people and hold them accountable, the more infantile they become. — Jim McCarthy Read more →
Fun with Charts
I use charts like this one to track open project tickets, color-coded by priority. At a meeting last week, I pointed out that the number of open tickets on this particular project had peaked out at 70 and was now dropping faster than the value of my house, at which one of the attendees laughed more enthusiastically than I thought was necessary. “Why is that funny?” I asked. I mean, it was supposed to be a little funny, but not laugh-out-loud funny. “I’ve been there,” she said. Read more →
Goofus on Software
When Gallant has a question for someone, he walks down the hall and asks it. Goofus keeps fruitless email threads going for weeks. Here’s an excerpt from the comment thread on a trouble ticket regarding a database record with an incorrect status code. comment 7563 posted by goofus on 2008-09-10 8:53 AM I did change the status code in test and this did fix the problem. However, we need to speak with JS regarding this issue as to how this will be affected in production. comment 7611 posted by me on 2008-09-12 9:15 AM Let’s get JS’s response so we can close this. comment 7621 posted by goofus on 2008-09-12 9:52 AM Emailed JS regarding this issue. Waiting on a response. comment 7637 posted by goofus on 2008-09-12 2:49 PM JS is out of the office until Tuesday, 9/16. comment 7773 posted by goofus on 2008-09-18 2:05 PM Sent another… Read more →
You Have to Explain Something to a Computer
When you’re doing programming, you have to explain something to a computer, which is dumb. When you’re writing a document for a human being to understand, the human being will look at it and nod his head and say, “Yeah, this makes sense.” But there are all kinds of ambiguities and vagueness that you don’t realize until you try to put it into a computer. Then all of a sudden, almost every five minutes as you’re writing the code, a question comes up that wasn’t addressed in the specification. “What if this combination occurs?” It just didn’t occur to the person writing the design specification. When you’re faced with doing the implementation, a person who has been delegated the job of working from a design would have to say, “Well, hmm, I don’t know what the designer meant by this.” It’s so hard to do the design unless you’re faced… Read more →
Eliminate Unnecessary Paperwork
If you need to explain something, try mocking it up and prototyping it rather than writing a longwinded document. An actual interface or prototype is on its way to becoming a real product. A piece of paper, on the other hand, is only on its way to the garbage can. — Getting Real, 37Signals Read more →
Interview with Jim McCarthy
Q: What do you perceive as the greatest current challenge for software development managers and how do you help them overcome it? The greatest current (and past and future) challenge for software development managers, and for all humans everywhere I suspect, is accurately perceiving reality and effectively accounting for it in their behavior. . . . Q: What is your number one software project management tip, trick or technique? Discussion should be illegal. Less talk, more code. — PM Interviews: Jim McCarthy Read more →
Scrum Doesn’t Do Anything
In the end it doesn’t matter what names you use for your processes, good people will do good work and continuously improve what they do. So much of the discussion around Lean versus Scrum (etc.) is about marketing hype, selling consulting and training services, and cornering the market with new name-brands. . . . Scrum is not a methodology, it is not a process. It is a simple framework underpinned by some common sense principles. Scrum offers individuals and organizations the opportunity to continuously improve the way they work. It provides a space for people to behave like human beings, with trust, respect and passion. That’s about it. But that is huge. — Tobias Mayer Read more →
It Isn’t a Thing You Do
Agile development isn’t a thing you do, it’s an attitude, it’s a set of personal values about responding to the real world, being open to the information that is there and being willing to do something about it. — Kent Beck Read more →
The Agile Elevator Speech
You begin by stating that agile is basically three things: a set of engineering best practices that allow for rapid delivery of high-quality software, a project management process that encourages frequent inspection and adaptation, and a leadership philosophy that encourages team work and accountability. You go on to say that success in today’s economy requires us to respond quickly to changing market conditions. Agile processes allow our teams to meet the changing demands of their customers while creating environments where top developers want to work. — Agile Chronicles: “The Agile Elevator Speech” Read more →
Gathering Requirements
The most common verb associated with requirements is “gather.” Yet most requirements that end up fulfilled in a system aren’t gathered. Yes, I know, there are always a few requirements that are so obvious in a new system that you can “gather” them from stakeholders, but gathering implies that the requirements are already out there, fully formed and fully understood, and ready for harvest. It just doesn’t work that way. No stakeholder ever says to an analyst, “Requirements? Why, yes, I have eleven requirements. Eight are functional, one is a usability requirement, and the other two are operational requirements. Are you collecting constraints now, as well? I have three of those. Please sit down, and I will elucidate perfectly clearly on each and every one in turn.” Most requirements are discovered–or invented. Many are transformed or compromised along the way. Most stakeholders don’t consider the underlying requirements of their work;… Read more →
Guarantees vs. Commitments
A thought exercise: “How long will it take you to get to work tomorrow? Can you guarantee it? To give us a guarantee, you’d probably put a buffer on your answer first. I guarantee a team working to put together software for the next two weeks is engaged in something a lot less well understood than a daily commute. We can put in a buffer – promise less – to give you a guarantee, or we can work from our estimates and do our best.” — William Wake Read more →
Waterfall: The USSR of Software
Think of waterfall as being similar in concept to the old USSR central planning of the economy. Think of Scrum as similar to a market economy. — Ken Schwaber Read more →
The Customer is NOT Always Right
Great sequence of posts on the scrumdevelopment Yahoo group . . . Person A says the number one rule of business is that the customer is always right. Person B says the customer is NOT always right, like his customer who wants an auction system like eBay on a budget of $1,500. Person A says Person B needs to shut up and listen to the customer. Person B says I AM listening. They want something like Ebay for $1500. They want me to build a full Ebay clone this weekend and then tweak it until they’re happy over the next two weeks. I have listened carefully and diligently and have confirmed multiple times. This is definitely what they want. They’d also like time travel, but they don’t need that until April. The point I’m making is that there are many reasons why just listening to your customer and giving them… Read more →
Best and Worst Software Features of the Week
I was typing in Microsoft Word and I started a bulleted list with an item like this: Topic1. A sentence about Topic1. And another one. Then I hit the Enter key. What do you think happened? Not only did I get another bulleted list item, Word set the font to bold! So I typed this: Topic2. And as soon as I typed the period, Word turned bold off!! Not only did it figure out that I’m creating a bulleted list, it figured out that I’m starting each bullet with bold font, followed by a period, followed by more text in regular font, and it takes care of everything for me automatically! That’s pretty sophisticated. Compare that to Lotus Notes, which can’t even figure out when I hit Enter twice that I want to turn the bullets off! We use Notes at work and I swear to God, if I type… Read more →