“We’ll need daily status meetings to find out why the project is so late”
Without giving any details, I often find myself thinking about the lessons in Frederick Brooks’ 1975 classic, The Mythical Man Month. His basic point is that adding extra resources to a late software project makes it later. If you have, for example, an estimate that a project will take one person 60 hours, and you find out it’s taking longer (80 hours), adding another developer won’t make it possible to have the project completed with both developers working 40 hours each. In practice, it’ll still probably take 80 hours (160 hours of work total) and may even take 90 hours.
I’ve been involved in program management for well over ten years now, first as a coordinator at SGI, then a release manager, then a senior program manager at TiVo, then a manager, then a director. I can’t count how many times I’ve seen the fundamental truth of Brooks’ theory proven to be true.
Scheduling and estimating for any project is an inexact science. Issues come up, things happen, people underestimate, bugs occur. TiVo has seen its share of missed deadlines. (Although we never seem to get any credit for the countless software and hardware and service releases that occur on time.)
Recently, Wired Magazine included us on their “vaporware” list for TiVoToGo for the Mac. There are a lot of TiVo employees who love and use Macs, and all of us want to see this released soon. It’s fair to say this is late, since we announced it for mid-Summer of 2006.
I’m not close to the project, so I don’t know when it’ll be ready or why it’s late (it’s not due to the Man Month Myth, as far as I know). But Jim Denney, a VP I work with, wrote a good explanation of what’s going on. I agree with the philosophy that we should never announce a release date until we’re 100% sure that we can hit that release date. And given the lessons of the esteemed Fred Brooks as well as the immortal Murphy, usually the only time you’re 100% sure is when it’s ready to be released.
As a company, people expect an awful lot of us. We’re in the news almost every day. People love our products and want more more more. We have competition on every side. I think people tend to forget that we’re not a big company — less than 600 employees. (When I started at TiVo, nearly eight years ago, we had less than 100.)
But if there’s one new year’s resolution I’d like to see TiVo Inc. keep, it’s to under-promise and over-deliver when it comes to product announcements.
Fortunately, for the area where I now work, TiVoCast, that’s exactly what we’re doing. The marketing and content folks I work with do an excellent job of making sure we keep our mouths shut until we have something to say.
So, with that said, it’s back to work…
January 6th, 2007 at 10:04 pm
Quite simply, this has caused me to lose even more faith in Tivo, something I didn’t think possible. It has to do with Mr. Denney’s comments:
“Believe it or not, we are actively working on the project and have been for the past year in various forms. Unfortunately, developing on the Mac platform has been a little more difficult because of its closed nature.”
The past year? TivoToGo has been available on Windows for TWO YEARS. This means Tivo didn’t even bother starting development until a year after it was done on Windows, let alone parallel development. When TivoToGo was released, Mac support was supposed to be “soon”. Two years later without a target date is not soon, and is simply shameful.
As for the Mac being a “closed platform”, how can it be more closed than Windows? This is just insulting and blatantly false. If anything, it’s more open given the ease of using Linux-based open source software such as video encoders and decoders (almost all compile cleanly out of the box) and the Darwin core. As for the Mac-specific bits, why not hire a competent Mac developer, or even contract it to a reputable Mac development company like Omni? THAT would be showing some commitment.
I am oversimplifying, but in a nutshell you need to be able to:
1) Copy files off the tivo (this can already be done directly with the web interface, so a simple call to “curl” and you’re done with this).
2) Decrypt them into memory (something else that has been shown to be simple, thanks to third-party hacks, and the fact that relatively underpowered Tivo hardware has no issues whatsoever – hell, reuse some of the Linux code!).
3) Playback, either by requiring Apple’s Quicktime MPEG-2 component, or by using any one of the numerous open source projects that can do so. I recomment ffmpeg.
4) Wrap the above in an interface. Something that should be doable in a few days for a competent Cocoa developer, and a few weeks for a Carbon one.
So in summary, file transfer is done thanks to Apple, playback is done thanks to the open source community, decryption should be easy since you already hold the code and functionality, and interface should be a matter of gluing it together.
Hire Omni. Give them your encryption routines. You’ll have it out in a couple months, and it will likely be better than anything you’re going to put out on your own (based on how long it has taken you to get this far).
January 7th, 2007 at 12:09 am
Joshua, thanks for the comments. I’m not close enough or qualified enough to comment on your points, but at work next week I’ll chat with some folks and see if I can get you some more details. I suspect that it’s quite a bit more complicated than your four points, and even you say you’re oversimplifying.
I’d also point out that we did have several releases for TiVo Desktop for the Mac in the past few years to support new platforms and OS releases (although granted TiVoToGo functionality hasn’t been included).
You may want to consider some alternatives although I have no idea how well they work or if they work (and I note that those took over two years to develop as well).
January 7th, 2007 at 1:04 am
Honestly, thank you for your response – I didn’t actually expect one. TivoToGo for the Mac has always been a bit of a sore point with me, as I adore both products, and I’ve struggled for quite some time to make them work with each other.
As for the development, yes, I am oversimplifying, and I know from personal experience that real world software development is quite a bit more difficult than what I’m making it out to be. And yes, there are always the political concerns with the content providers. (As an aside, I’ve always been surprised they didn’t go with a watermarking scheme instead of DRM – copy it all you want, but we know who started it and can hold you accountable.)
Adding it all up, it’s still hard to justify a two year delay in a product like this. After all, the Mac TivoToGo group is the one that delayed a Tiger-compatible release for nearly a year, when the main bug was a single faulty line in the install script.
Tivo is one of those products that has always been a bit frustrating as there is so much obvious potential in unifying all of our media into one box. TV, computer content, internet content, photos, music, all in one place, and then using that central content store to supply all of our other computers, iPods, movie players, etc. Content provider politics and lack of funding have been mostly to blame, but it’s always been a bit sad that Tivo hasn’t been able to pull all the magic together. They certainly got the hard part – the user interface and intelligence – right from the very beginning.
January 7th, 2007 at 8:22 am
(Although we never seem to get any credit for the countless software and hardware and service releases that occur on time.)
There’s a fairly simple reason for this: I do not think that I have ever heard of anything other than rumored release dates for anything from Tivo. I actually did some googling on this a bit before I posted this comment, just to be sure, and the only instances that I can see of any dates announced by Tivo are a couple of references to “first half” or “second half” of particular years, none of which have/had been met that I could find either.
The exception to this is when a street date is finally announced within 45 days of the ship date, and in most cases those seem to be leaked by third parties instead of official announcements from Tivo.
While it is certainly possible that many products and features are making internal deadlines, if you never announce release dates externally it makes it effectively impossible to give the company any credit for making dates that no one knows about.
If you can point to other information that proves this wrong I would be exceedingly glad to see it.
January 7th, 2007 at 8:30 am
Joshua you are right on and quite frankly, you are over complicating the matter. It really is as simple as your four points.
The .tivo file is a mpeg-2 encoded file wrapped in a DRM layer. The DRM portion is easily decoded in faster than real time on any current Mac and I bet real time decoding can happen on much older Macs as well. The code is already there, though I hope this part Tivo actually already had code to deal with, seeing as they wrote it.
So, your point 1 is definitely correct, getting stuff off the Tivo box is a piece of cake. Galleon does it, you can get to it via https, so this is no problem and should already be available as a supported feature, at least to back up. (Consequently, the other feature of TivoToGo functionality, TivoToGoBack is also already implemented, both by Galleon and by Tivo, though you have to secretly activate the Tivo code to make it work)
Point 2 should be able to be handled by Tivo anyway, they wrote the DRM, it ought to be available from a multitude of internal sources in a handy library. If it isn’t, then the Tivo programmers are in the running for least competent development team of all time. But yes, if that is actually the case, they can borrow the open source code if need be (it already compiles on the Mac guys, so no excuses there, we know how hard it is to work on a Unix platform and compile C code, you know, gcc is a closed, mysterious box, oh no wait, it is open source, the standard compiler for Linux, which, incidentally I think the Tivo is built on, maybe, just maybe someone in your orginization has heard of it.)
Point 3 you are a little wrong on. Apple’s MPEG-2 codec won’t play back the unencrypted MPEG-2 stream from a Tivo. I’ve tried it, no dice and Goolgle search comes up with the same answer. Won’t work. But that’s ok because why should I have to spend $30 just to play back the Tivo stream. Tivo already pays (directly or indirectly) the MPEG-2 license. Now, possibly Microsoft pays the license fee on the PC side, since the underlying MPEG-2 playback on the PC is provided by Windows Media, but the fees are pretty tiny, Tivo can suck it up and pay for them. Or charge a $1 to download Tivo Desktop to Mac users and let them know that it is becaue Quicktime doesn’t play MPEG-2 and they have to pay a fee to make it work, instead of falsely blaming Apple for the delays.
As you pointed out there are mpeg libraries that are open source, so if Tivo is too lazy or incompetent (really you don’t have a mpeg wiz on staff who could write you a decoder?) to write their own, they could borrow the code and use that. Then all they would have to do is wrap it in the required Quicktime wrappers to have playback on the Mac. Oh, and if they need help learning how to do that, Apple has articles on their Developer Website. It is even free if you can’t afford to get a real membership. So is the development environment for Mac, also free. And there are articles on how to develop applications that run on both common cpu architectures, you know, just in case someone tries to use that as an excuse.
Point 4 I’ll even give them a pass on for now. At the moment there are lots of nice ways to get content off the Tivo and I can playback using the Quicktime player if Tivo would just get around to giving me a Quicktime playback component. Hell, even an automagic conversion to Mpeg-4 might be ok, then I can play back the content in Front Row. Even better would be if Tivo would forgo an interface for playback entirely and just allow us to download into iTunes and set the tv show up with all the Tivo data it could.
But if you insist on making your own player, I am pretty sure you can reuse the quicktime player as a starting point through the Cocoa frameworks. You can build a webbrowser in 10 minutes on a mac, basic, but functional. I imagine you can build a video player, basic but functional in no more than a week if you really tried.
The myth of the Man Month in this particular case rings false to me. This project couldn’t possibly have been slowed down by too many programmers, as it is a one man job, maybe a few months. There is no excuse for it taking this long, other than, it really hasn’t been worked on as a priority, always as an afterthought.
Believe it or not, we are actively working on the project and have been for the past year in various forms
Translated from marketing lies, this really means:
No one has been dedicated to this project at all since we announced it. On occasion we bring in an intern from a local community college that we don’t pay and let him feel like he’s working on something important by letting him look at the code. But then we need someone to be the Mountain Dew and Coffee gopher for the real programmers working on Tivo and PC code, so we pull him off that.
Wired was far too kind to Tivo by not giving them the #1 vaporware spot. Duke Nukem Forever may be 10 years in the making, but at least it is a complicated task that involves a lot of original code. TivoToGo for Mac just requires a little bit of wrapping up and it’d be finished.
PS: If Tivo needs a Mac user to come in and show them the places they can find the articles they need, I’d be happy to volunteer, I’ve been out to HQ twice and don’t live to far away. I’ll take a day off work if that’s what you really need, I’ll even fill in for the gopher so he can actually work on some code.
January 7th, 2007 at 1:08 pm
Jason, I didn’t mean to imply that Man Month Myth applied to Mac TiVoToGo development. As I mentioned, I’m actually not close to that department and have no idea how many developers are assigned (although I know it’s at least one, and that developer is definitely not an intern and definitely not a gopher). I would have no basis to make the claim that the delay was due to assigning extra developers. As far as I’m aware, it’s not the case.
Sorry to conflate the two in my post. I just edited the original post to make it clearer that the two sections are unrelated.
As far as the Man Month Myth goes, I was thinking more of a few other specific projects, past and present (which I can’t reveal, sorry, but I’m spending the weekend working on one of them). Then I segued into a more general point about TiVo receiving a vaporware award for the Mac TiVoToGo development.
I don’t know anything about the cause of the Mac TiVoToGo delays myself, beyond what Jim Denney wrote in his response that I linked to.
Thanks for the comments and the offer to come by in person. When I get a chance next week I’ll talk to the desktop team and see if folks are interested in taking you up on the offer!
About all I can do in the meantime is apologize for the delay and recognize that you and other folks are frustrated.
Best,
Stephen
January 7th, 2007 at 1:22 pm
Nathan, I’m busy working on a separate issue so I can’t really take the time to come up with too many examples, but you’re right that most of the deadlines we’re hitting are internal. We’ve learned our lesson the hard way and try to be vague (“second half” etc.) when making external announcements. The best recent example is the Dual Tuner unit, which actually hit the market ahead of our internal schedule, and was announced and delivered and shipped in a way consistent with what we’d announced. And before anyone tries to say the DT unit was easy to make, let me just tell you based on first-hand experience that no it wasn’t.
Another good example is the TiVo Desktop support for portable players (like the Video iPod). We demoed it, announced it, and then shipped it ahead of the time it was announced to launch. (Too lazy to look up the dates right now but I’ll add them later.)
Also I want to cite our client software releases over the last couple of years. The KidZone release, for example, which included major new functionality, was similarly announced and then shipped when we said it would ship. And that was just one of our client releases this year.
Other things off the top of my head include the TiVo-branded wireless adapter, WPA support, clipping, and the recently deleted folder.
January 7th, 2007 at 1:59 pm
Another reason companies don’t get any credit for shipping on time is that that’s nothing to be proud of or for anyone to give extra credit for.
Companies are expected to do what they say they will do when they say they will do it. Meeting a deadline is just normal it shouldn’t be a celebrated event. Mediocrity and the status quo don’t deserve bonuses.
Now, on the things you get out ahead of schedule, well you do deserve some praise for that. So, if the DT was out early, great work, you’ve earned it!
January 8th, 2007 at 6:05 am
Stephen,
Thank you for your blog, and the information. I know you said you do not have anything to do with the Mac Development, But from what I read on a pvr website, which is how I found your blog, is that your an exec at Tivo. I think its interesting, that just a few days after you posted this blog. TivoToGo came out, well kinda sorta. As a $100 piece of bloat ware from Roxio. Here is where I think Tivo has failed miserably with the Mac. The Mac is a very important system that needs to be supported, especially since Apple has switched to the Intel processor, more and more companies are supporting the Mac.
The way Tivo has failed as this. Tivo hired one (well possibly more developers) to do TivoToGo for the Mac, and they failed. So what did Tivo do, they secretly partnered with Roxio to include this functionality in the upcoming version of Toast for $100. Tivo allowing this to happen shows how they really don’t care, and don’t tell me they do. They don’t. Yes its nice that Roxio came out with this, full version application, But what about people who don’t want to spend $100 on Toast Bloat ware? Why didn’t Tivo partner with Roxio and say hey, we will let you include TivoToGo functionality in your Toast application if you pay us $$$, (And don’t tell me Tivo is not benefiting Financially from this partnership)
I am getting a little off topic. But here I go. Let Roxio include TivoToGo in their $100 Toast application, But also, Why could Tivo not sell a dummied down version, Which does not include all the features of Toast.
TivoToGo for the PC, to be able to convert shows to an iPod is $30. Have Tivo sell a Tivo branded version of parts of Toast that just include that function. So the Mac and the PC are on the same level.
With Tivo, well Roxio selling this for $100, is a slap in the face, a punch in the gut, and shove in the mud to all Mac users. Tomorrow iTV, or what ever its going to be called, may be released by Apple, and rumors have it, that it may have DVR functionality. Whether Tivo is Partnering with Apple (which is what Tivo really needs to do) or Apple includes their on DVR software are yet to be seen (if at all). I have recently purchased a dual tuner Tivo (don’t get me started on the price of the series3 (Another thing that was a year late, and a dollar short, and costs too much money) but being an Avid Mac user, if iTV comes out and it has DVR functionality, I may give up one of my two Tivo’s to use the Apple branded DVR (that is if the new iTV does include this functionality) especially if it records and plays back in HD. Since I do have a HDTV…
Tivo use to be a company like Apple, which broke the rules and did what their customers wanted and expected from them. But now, Tivo is just like any big corporation that no longer cares for what their consumers want. Another feature that I have always wanted in Tivo, and many other people have requested this feature that I am about to mention is the ability of users who have more than one Tivo on a home network, to try to record a show on one Tivo, if the Tivo fails because something is already scheduled to record, instead of just not recording the show, have Tivo look on the network and see if something is scheduled to record on that other Tivo, if not, allow the user to be able to schedule this recording on the other Tivo via the network.
This type of thing is what you expected from Tivo in the beginning, Tivo strived to find ways to make things easier for the Tivo user and make for a fantastic Tivo experience. But not anymore. The version of the Tivo OS hasn’t really included many new things that have been worth while for a long time. With the exception of the games, and the live show padding, and the recently deleted folder, What has Tivo done for me lately? I have been a Tivo use for about 5 years, and my parents have been Tivo users since the Tivo first came out.
January 8th, 2007 at 7:37 am
I’m similarly pissed off – Jeff is right on in his criticism. I advocated contracting this to a third party company, but not by giving them control of selling it. Now that can stamp “job done” and walk away, while Roxio laughs all the way to the bank.
I’ve completely had it with Tivo. The day my DirecTivo stops working (new satelites, end of programming guides, what-have-you), I can guarantee I will not be purchasing a Tivo. I cannot support a company that treats its customers in such a manner.
(And in case you were wondering why I’m fired up about TivoToGo when a DirecTivo clearly does not support it, it’s because I was a standalone Tivo user for many years before switching to satelite.)
January 8th, 2007 at 11:46 am
Sorry you guys are upset.
Jeff, I’m not an executive, I’m a director (upper middle management). I had no idea about this Roxio release when I wrote my blog post. (See, I really am removed from Mac desktop development.) I’ll talk to some folks internally, let them know that you guys are upset, and see what we can do.
“What has TiVo done for me lately?” You mean other than live padding, WPA, games, TiVoCast, the recently deleted folder, dual tuner, fast TiVo adapter, movie tickets and scheduling, Podcasts, live audio streams, product watch, KidZone, etc.?
I hear you guys are upset, but this isn’t really the place to complain and rant (tivocommunity.com is the perfect place for that) — this is my personal blog. You know, where I post pictures of my kid and stuff. I’ll do my best to help you out, but when you’re in my house, I recommend a different approach.
January 8th, 2007 at 1:39 pm
Stephen,
I apologize, I understand this is your personal blog. I have been a avid Tivo costomer for a long time, and look foward to continuing to be. Yes Tivo has done things lately, like I said Live Padding is great, WPA is nice ( even though it only works iwth the Tivo branded adapter, which I have btw and love it ) Deleted folder, love it. The other things you mentioned even tough they are interesting, how do they enhance my tivo experience with recording shows? The games are great too.
I am unhappy with the whole Tivo2Go mainly, plus would love the other feature I mention regarding the programming of more than one tivo on your home network from your Tivo.
Again, please accept my apology, my post was not meant to be an attack on you.
Is Sammy your first child? Congratulations, What a beautiful lil one you have. I am a new father myself, well kinda sorta. I have a daughter who just turned 18 months old this weekend. She is a big girl, she weighs 29 pounds, and it close to 30 inches tall? She goes for her 18 month checkup on Friday. She has 11 or 12 teeth.
Please feel free to delete my previous comment from your blog if you wish, again your right, this is not he appropriate place for it. I would delete it myself, but I dont think I have that ability.
January 8th, 2007 at 4:05 pm
Thanks Jeff. I didn’t mean to be overharsh, and thanks for the apology. I will leave your comment for posterity, and I do understand that you’re upset and you want to see more enhancements to the core TiVo functionality and TiVoToGo for Mac.
The other feature you mentioned (which I believe we call internally “hive mind functionality”) is definitely something I’ve seen worked on. There has been quite a bit of talk and work on it. About the only thing I can say is that it’s a bit of a challenge to implement and you may well see it someday.
Sammy’s my first son, yup. Congrats on your daughter! 29 pounds, woah! Sammy’s still about 23 (and still wearing stage 3 diapers). Although I guess girls grow up faster…
January 9th, 2007 at 7:43 am
Hi Stephen,
I am glad I read all the comments first
I won’t rant, just add a me too.
I never saw the blog header until today, it is really cute. Thanks for letting us vent a while back.
January 9th, 2007 at 4:38 pm
Glad to have you, Jason, thanks
I think I broke the blog header for about a day when I upgraded from WordPress 2.0.5 to 2.0.6. Sorry ’bout that.
May 29th, 2007 at 7:25 pm
[...] TiVo’s Director of TiVoCast Operations, E. Stephen Mack, posted an entry in his blog about the troubles with TiVoToGo on MacOS. [...]