Skip to main content

The Best Things in Life are Free Birdseed

This weekend we had a call with a prospective client eager to pay us to help them build out a new social media feature in their (very cool) software system. We turned them down.

They had an urgent deadline, but that doesn't scare us. They'd also already done some exploratory prototyping before they realized they needed some help, so they had a pretty good idea of what they needed help with.

After listening to them describe their current status, I asked a few questions and then realized they had run into a little snag with a non-obvious feature of the API used to talk to a particular cloud service.

They didn’t really need our help building and delivering the short term solution, they just needed an email briefly describing the shortest path from where they stood, to the goal.

I sent them the email they needed, right after the call. 

They're running with the ball, now, and they're gonna make the goal.

We didn’t lose business, we made a friend.

A fascinating thing about this experience is that their deadline was so tight and they were already so close to the goal, that lessons of the classic software project management book 📖 The Mythical Man-Month by Fred Brooks came into play on a really visceral level.

Here's the relevant portion fo the Wikipedia entry (the entire book is well worth reading if you haven't gotten 'round to it, yet):

"Therefore, assigning more programmers to a project running behind schedule will make it even later. This is because the time required for the new programmers to learn about the project and the increased communication overhead will consume an ever-increasing quantity of the calendar time available. When n people have to communicate among themselves, as n increases, their output decreases and when it becomes negative the project is delayed further with every person added."
• Group intercommunication formula: n(n − 1) / 2
• Example: 50 developers give 50 · (50 – 1) / 2 = 1225 channels of communication.

Adding to the team introduces new communications interfaces between people. Even if it’s slight penalty under normal circumstances, there’s a definite cost to adding a new member or two, to a team, measured in communications overhead.

In the case of this project, the relevant portions of the teams seem pretty manageable, at first, the client team was lean and nimble, with three people.

3 (3 -1) / 2 = 3 channels of communication for the original client team

Our team would bring two people onto the task at hand, to meet the urgent deadline.
5(5 -1) / 2  = 10 channels of communication for the augmented team

More than three times the communication channels!

Adding a small number of people to a small team can be a big productivity boost, but given the other constraints of a very tight deadline there's a non-trivial risk of accidentally peddling backwards.

This project also has certain technical constraints and a few possible pathways to a solution that would work, but only one that could work in time to meet the deadline.


Popular posts from this blog

Blogs: Not dead, yet!

If you're a blogger, you might find this essay, recently shared to YCombinator's Hacker News  from a blog, to be of interest. It's perhaps a little pessimistic, but has some fair observations about the state of affairs in the #blogosphere.  If I could bring one thing back to the internet it would be blogs It's almost impossible now to find a blog that's not on a focused theme because that's what search engines focus on and how websites profit. But you want the opposite, a blog that never tried to focus or even thought about it.  The observations about the role of the only search engine that presently matters, Google, in the state of the blogosphere are worthy of consideration. In the discussion at Hacker News, the author was criticized a bit for saying that Google Blogger was "dead" —which itself seems a pretty fair criticism if not strictly accurate in a pedantic sense. Google basically abandoned Blogger in place years ago. Sure, our own ill

Working with David Cui (Zuizin) on EyeSpy for macOS

Lately I've been working on various projects with several new #freelance #iOS#Swift #mobileapp developers, including David Cui (Zuizin). David is helping us update the illumineX, inc. cartoon-eyes toy, EyeSpy (for macOS), which we've been ignoring for a few years. David is enthusiastic, professional, and effective. He's the type of developer who likes to leave a campsite cleaner than he found it. While doing routine maintenance on the product (updating it for Swift 5 and Xcode 11.5) he noticed there was a tiny bit of test code accidentally left in the product for years, and causing a little glitch. He brought it to our immediate attention, and fixed it. David also cleaned up and modernized our In-App Purchase system, which hadn't had any attention for a few years. It turns out that even though our IAP store had been working in sandbox testing in the lab, it had been failing silently about 1/3 of the time in production. Doh! The IAP system in EyeSpy is a wel