Twitter’s updated Mac app wasn’t made by Twitter
theverge.com
theverge.com
The problem is that there's a fixed, small quantity of good, senior, Mac/iOS developers. A lot of them like being independent and flitting around from project to project because that is how you build an experienced developer to begin with.
Meanwhile there is all this demand for apps, and so agencies act as the "market-markers"–acting as the sales force, the marketing team, and playing the role of "nobody got fired for hiring $AGENCY" etc.–but the actual lead engineers are pretty much the same bunch of schmucks no matter whose name is on the contract. If you want to know who wrote it, check the names in the header files, and we all meet at the same bars on Thursday nights.
I always advise people to cut out the middle man and hire the indies directly (disclosure: that would be me) since it's the same thing anyway, except cheaper and with fewer games of "telephone". But the pull of the pretty logo and the rapport with the Account Manager is strong.
Black Pixel is better than most of the agencies in that they do a large amount of their work in-house. But their "in-house" people are often just good contractors taking a break from contracting so I'm not entirely sure what you've accomplished by doing that.
I'm not really complaining–agencies have historically been a reliable source of gigs for me, and so they are my friends; they provide me a valuable service.
But do they provide you a valuable service? That I don't know. I have been in situations before where no matter which vendor the customer went with, I would be an engineer on the project, and the customer sat down and agonized over who to choose. That just seems inefficient.
Source: http://www.calrest.org/tips-for-protecting-your-unemployment...
It also has to do with morale. If Jim just disappears and he's a FTE, that makes people nervous. They might start looking at a different positions. If Sally the consultant is gone tomorrow, oh well. There is often an "us" v "them" relationship between FTEs and consultants. It's not necessarily antagonistic, but it's not as amicable as FTE to FTE.
You can do X for no reason != You can do X for any reason
i.e. they can fire you when they wish to, but if you can demonstrate that the reason for firing was illegal, then it the firing is not for "no reason", but for an "illegal reason."
What you're trying is in UK parlance called "constructive dismissal" and it's not good; many jurisdictions make this risky.
About the cost though, if you do the hiring yourself, the overhead is around 5%. Quite OK for insurance considering the agency also handle payment and invoicing (some big clients are bad at paying on time, but the agency will still pay you on time, weekly for example). If you use the agency for recruitment too, that jumps to 20% and much more depending how much service you require up to full outsourcing.
Disclaimer: I'm a Dutch contractor and while I don't think I'm an über developer, I do notice I'm more passionate about the job as most of my (ex-)colleagues with permanent contracts.
The other important point that you mention is customer acquisition and trust. How should prospective customers find you? How should they evaluate you? From hiring designers, I know that portfolios are only part of the picture... hiring an agency at least gives you peace of mind that someone will answer your mails instead of ignoring you.
Twitter has a ton of employees. Unless you actively believe the Mac app will hurt your business there should just be one full time engineer on it, someone who loves ObjC and UI design, who can use Twitter as a testbed for crazy UX ideas. If its not important, than whats the worst that can happen, you generate a ton of developer respect?
Agree with everything you just said, except, please make it two engineers. Speaking as a prototypical eng manager who typically inherits these types of projects when "that one engineer" leaves the company, I strongly believe that any job worth doing is worth doing by more than one person. (Plus, a good peer, just to bounce ideas off of and do informed code reviews with, is worth their weight in stars.)
PS: I thought @jack was going to open the third-party ecosystem back up again. That also has the potential to help address this problem. Did that not happen?
[1] http://www.theverge.com/2015/10/21/9586084/jack-dorsey-twitt...
I asked Jack about the third-party ecosystem on his producthunt Q&A, he said Fabric is a strong offering and they're building more to repair relationship.[1] I don't know if them building developer tools is same as repairing relationships though.
[1] https://www.producthunt.com/live/jack-dorsey#comment-202231
When comes the time to ship, you need to involve release engineers and QA and...
Really not worth your time when the app in question is targetting a minuscule market (Mac OS) that's not part of your core business.
Better outsource, validate when they're done and ship it.
So, no, it's not naïve. In fact, it would be entirely expected, given that that's how this app started out.
But when you're going to maintain and develop further for a long time, the game changes. You need sustainability. The one developer may want to have a longer holiday. She may be run over by a bus or get cancer or have a child, so you want to have another person who knows how to develop. When the app becomes more complex and there are multiple platform versions to support, it will require more QA than one developer can do. You will want to have more than one person to work on it, and you need structures for that.
It is possible that in some business your competitiveness cannot cover the cost of mitigating this kind of risks, but then it's not a very good business.
1.) I am surprised this doesn't happen more. You find a company that's excited to build it, let them run with it, then if it ever becomes a target you acquihire.
2.) Folks internally probably know a Mac app isn't a target. Thus, who would want to work on it? There are probably loads of more exciting projects that'll get recognition. It's not that they can't, it's that no one there (really) wants to...
> Twitter has always seemed to hate the idea of a Mac app and has either tried to kill it or let it rot. At this point I think 3 generations of rogue devs inside the company have basically had to sneak around management to work on it.
> Interesting to see them publicly announce an update. Rumor is they've completely outsourced development though.
Though with that said, I'd like to lay a bit more guesswork down now.
Those devs were probably good, I'd guess too good (for these purposes), and that management wanted them focused on core products which serve their target better... Like iOS? So it is probably less about contempt for the Mac product and more about the best usage of resources.
I have a feeling the rogues at Twitter who want to work on this are in a pretty high pay grade, even compared to the folks at the shop that made it. So it even still probably saved money.
With all that, has Twitter made the best use of those developer resources? I have no clue.
That's a valid strategy for why you would want an open platform, but it doesn't really apply to outsourcing. It's not the agency's product and you're handing over cold hard cash for their time. You're not going to acquire the agency if the app takes off... you already own the IP.
Really the only reason that you should outsource is if an area is not in your core competencies. If developing software for a major platform isn't one of Twitter's competencies any more, that bodes ill.
Well I think you're discounting the value of their domain knowledge and their contribution vastly too much. It will take time and resources to bring a new team online. Often times, that time is greater than the business can allow. The cost of simply acquiring the company isn't going to be sufficiently high enough for the corp to even worry. As you said, they (Twitter) own the IP.
It would be quite different if this was done by a startup whose sole or primary purpose was making a Twitter app. But an agency has dozens of different projects and clients (up to hundreds) and most of their team probably wasn't even involved in the Twitter app.
If Twitter wants to refocus on Mac, they'll just hire a Mac developer or two and pay the agency to train them on the app.
I could definitely be wrong, and perhaps the app just doesn't require that level of expertise. If you have any data, I'd be happy to look at it-- knowledge is power.
There are three categories of expertise required for this app:
1. Expertise with the Twitter "domain." Twitter obviously already has this more than any outside consultant.
2. Expertise with writing Mac apps. Twitter can easily hire for this if they need to spin up in the future.
3. Expertise at the intersection of the two, which is pretty minimal. At the end of the day, it's a pretty simple CRUD app. It's definitely not worth paying $5M to get the developer who made it, especially when you consider that Twitter probably provided most of the product direction.
> I just don't think a company the size of Twitter would worry about a $5-$15 million expenditure to get access to the talent they want/need right then.
First off, I suspect an acquisition of a successful studio like Black Pixel might be well out of that range. They have their own products, including NetNewsWire, as well as a healthy client roster. According to LinkedIn, they have 50-200 employees. Not a trivial or cost effective acquisition. [0]
> I could definitely be wrong, and perhaps the app just doesn't require that level of expertise.
I don't have the data on hand, but I'm sure you could find it in Crunchbase. In general, it's rare to see established design studios being bought by their clients.
[0] https://www.linkedin.com/company/black-pixel?trk=extra_biz_v...
Why? They aren't desktop software company. They're huge-scale services, social interaction and growth company.
"Software development" is too broad a field for even Twitter to specialize in. They don't write firmware for hard drives that spin in their servers either — and I'd say that skill of writing firmeare is as far from skill of writing high-load servers as skill of writing desktop software.
They might not be a desktop software company, but they're also not really just a "services" company. If they were, I wouldn't have expected them to invest so heavily in developing and owning the mobile client experience. In fact, they directly sabotaged people from building third-party API clients.
Considering how close Mac app development is to iOS development (which remains, supposedly, a key strategic area) I'm surprised.
Black Pixel is a very good studio, and it's too bad they have to take their lumps on this. Everyone has a bad project: political infighting, technical constraints, lowballed estimates, unfunded scope creep, failure to vet or make explicit all the necessary assumptions. Or maybe their architect got religion, decamped to a Moldovan monastary, and now refuses to communicate except by illustrated vellum attached to a carrier pigeon. All sorts of stuff can go wrong, but it's still your baby.
Yes, I know that. I guess I'm more surprised that Twitter now considers OS X off-channel enough to not keep a dev on it. It's pretty close to iOS development and seems like a good skill to keep in-house, if only as a testbed for new UX ideas.
> Black Pixel is a very good studio
Yes, they've done some great work in the past. I definitely don't hold this against them, especially when project failures can be just as much a problem of client communication.
An internal developer can't ship that app. The 15% of the cases where it doesn't match the desired business intent torpedo shipping it. Keep in mind the alternative option to the native app is using the web app which likely works in 99% of cases. It's unacceptable to whatever section of the company doesn't have their feature in the native app (but do in the web app) to 'lose' users.
Of course that last 15% of the features leads to a doubling of complexity.
I used to be able to see all my accounts on the left-hand navigation bar, and now I can't because the increased spacing pushes them off the bottom of the screen. Annoying, as this was what I used to see which accounts had updates.
a) We're going to do this and we'll do it right. It might be a smaller audience, but if we release this product under our name it will be awesome.
b) This isn't a priority, so we're not going to ship something half baked and outsource it. Here's a link to TweetDeck and TweetBot.
It's possible that someone signed a bad contract. I've seen terrible products worked on or released because certain rights were sold in ways they shouldn't have been sold. That's not an excuse as it should still never happen. But it can go down that way.
Since the API now effectively forbids third party apps, that doesn't seem like a viable option.
They should have just rebranded TweetDeck as the new official Twitter OS X client.
I'm almost sure that Twitter was stretched thin with Obj-c/Swift engineers building out the iPad app and refreshing the iPhone app (Moments) this past year.
business
Not only with such tech Twitter could have leveraged their internal web expertise instead of outsourcing for this app but they would have gained the Windows Store version for 0 additional cost. I checked and the Twitter windows version differs and probably required another external company (or maybe Microsoft help).
I'm a web developer myself and was really impressed with Electron that I discovered very recently. I'll surely use it for the mac app store version. On windows there's already a way to package a web app in Visual Studio (pretty similar to Electron but uses Edge instead of Chromium).
[1] http://web.archive.org/web/20100922230053/http://blog.atebit...
[2] https://blog.twitter.com/2011/fast-core-animation-ui-for-the...
The libraries were introduced a long time ago and were probably first developed for the iPhone. For this new app they outsourced the effort despite the fact that they acquired Tweetie and hired Brichter.
I understand the history of it but my point is I'm not sure this is all still relevant in 2015 especially if Twitter outsourced the effort for this new version. A chromium instance can have fast animations on a mac or windows machine with only web tech (a lot easier to maintain).
https://about.twitter.com/products/tweetdeck
After all Twitter only list their IOS/Android apps and Tweetdeck in the footer on their about pages.
I'm surprised in a way this is a native OS X App - from what I've seen of Node.js + electron something identical could have been written that was cross platform.
Not well regarded if you paid them money for their Kaleidoscope app, which is pretty poor quality.
If you can go non-graphical, there's rsync. Then for diffing inside files, if you have Xcode, there's FileMerge which is hiding in /Applications/Xcode.app/Contents/Applications/FileMerge.app
It's not an integrated solution, though, as Kaleidoscope aspires to be.
edit: tweetBOT, not DECK, and we regret the error!
*tho it has which has its own frustrations, and totally apathetic devs :'(
The browser window doesn't easily resize to a natural size for Twitter use. The browser either won't remember the size, or it will remember too well and start trying to apply that size to new windows that aren't meant for Twitter.
The browser won't put an icon in my menu bar to show when new stuff has arrived.
The twitter.com window will be mixed in with the others, so cycling through them with cmd-` will be annoying. Conversely, getting to that window specifically will require more work to find it among the others.
Basically, this is a microcosm of why people use native apps at all. The answer is pretty much always "they work a lot better."
Personally, I'd prefer browsers concentrate on being better browsers, not being better at pretending to be real apps. Experience suggests that they'll never be very good at the latter no matter how hard they try, and we already have a perfectly good solution for building something that looks and acts like a native app: an actual native app.