The most interesting thing I read online this past week had absolutely nothing to do with Markdown. If you're unaware of the tempest in a teapot currently surrounding that subject, I suggest not changing that at all. Instead, what I found most fascinating this past week, was an in-depth look at how LG managed to screw up their acquisition of webOS.
Back in January, I read an article from The Verge that described the trials, tribulations, and most recent rebirth of webOS. I had to say that I was as impressed with what that team had managed to build as I was saddened by how much they'd been jerked around for the past few years before that.
LG is better known for pretty schizophrenic Android skins on its smartphones, so to see the company produce something this coherent was a shock.
— January, 2014
I started wondering if my next TV should be an LG, and how that would work out with my Xbox 360 and Apple TV. Well, fast forward eight months, and now I know that I should've known better.
If [LG's main corporate structure back in] Korea had had its way, webOS TVs would have had an additional menu gallery of vertically-scrolling cards, including one for personal media sharing, one for browser bookmarks and one for all installed apps. Altogether, the UI was to consist of close to a dozen such cards that consumers would have had to rotate through to find the apps or content they wanted...CES was approaching quickly, and LG’s engineers ran out of time trying to make their complicated interface work, so the decision was made to go with the webOS launcher instead in order to have anything up and running at all..."We got lucky," said one member of the original webOS team.
— August, 2014
And, sadly, everything above makes perfect sense when you read this graf in the GigaOm article:
LG had a policy in place to reward managers with bonuses or even promotions if their features were part of the final product. The result was a constant feature bloat, as everyone tried to add on one more thing.
Incentivizing the right behaviors is incredibly challenging. I think most companies get this horribly wrong. Even companies with good intentions can still get it wrong, when they assume that they don't incentivize counterproductive employee behavior. In fact, in some ways, this can be even more dangerous, than assuming that you do incentivize behaviors, and trying to find ways to direct that to a productive end. I think avoiding behavioral incentivization is impossible. Your employees (hopefully) want to excel in order to get things like promotions, raises, bonuses, praise, etc. I think it ends up simply being a matter of mitigating the worst possible outcomes, while angling for something that seems reasonably decent.
- Incentivize number of bugs fixed, and you'll get bad code written up front.
- Incentivize number of features shipped, and you'll get a hodgepodge of features jammed into a product with no coherent vision.
- Incentivize peer reviews, and maybe you'll end up with a culture of glad-handers and politicians. Or maybe it'll work out. I don't actually know about this one...I've never been in a corporate culture that embraced this.
What's worked well for you? What's failed miserably?
Best,
Aaron
What We're Reading
- The Terminal
- Xcode vs. Gatekeeper
- Apple's TestFlight Beta Testing Service Gearing Up Alongside iTunes Connect Revamp
- A failed experiment: How LG screwed up its webOS acquisition
- Apple Dominating Shipping Capacity Out Of China With New iPhones
Control of the Week
JMAnimatedImageView
Subclass of UIImageView to drive easy animations (manual rotation, Carousel, etc). MIT licensed. |
Weekly Roundup
readFVCustomAlertView
Custom AlertView/HUD for iOS. MIT licensed. |
International-Calendar-Widget
An International Calendar iOS8 widget that shows you the date in different calendars. MIT licensed. |
Swifty
A beautiful Login coded in Swift MIT licensed. |
Swift-String-Tools
Helpful tools to manage linguistics, and Social in a String. MIT licensed. |
iOSSharedViewTransition
iOS 7 based transition library for View Controllers having a Common View. ** Inspired by Shared View Activity Transitions introduced in Android L ** USAGE Very Simple 3 Step Process: 1- Download and include ASFSharedViewTransition.h and ASFSharedViewTransition.m in your Project. 2- In your app delegate or somewhere else in code do #import "ASFSharedViewTransition.h" and add transitions. 3- Confirm From & To View Controllers to ASFSharedViewTransitionDataSource and provide the Common View by implementing sharedView method Thats it! A Sample Demo Application has been included for help. Animated GIF: http://goo.gl/EL6l6R Youtube Link: https://www.youtube.com/watch?v=AGcjSJqnkhk MIT licensed. |
ASFTableView
A customizable Web like multi-column table view for iOS with header and inner rows MIT licensed. |
PinterestAnimator
PinterestAnimator performs view controller transitions like the one in the Pinterest 3.0 app. GPL licensed. |
Cover Photo Twitter
Example of blurred expanding cover photo like twitter app: http://m.UploadEdit.com/b038/1407960919189.gif Created in Xcode 6 with auto layout, swift GPL licensed. |
DTIActivityIndicator
AMTumblrHud
Progress HUD inspired by Tumblr app MIT licensed. |
MALoggingViewController
SALQuickTutorial
JMCache
SDFeedParser
Objective-C parser for the JSON API plugin for Wordpress. MIT licensed. |
MapTable-Swift
Mimic the Find My Friends app's first screen behavior. MIT licensed. |
LFHeatMap
Extremely fast iOS heat maps. MIT licensed. |
ANDLineChartView
MoStoreButton
ios 7 Appstore like button MIT licensed. |
TOBrowserActivityKit
A set of UIActivity subclasses for opening NSURL objects in Chrome or Safari. MIT licensed. |
ReorderableTableView
VBFPopFlatButton
Flat button with 9 different states and 2 styles animated using POP MIT licensed. |
ASAttributedLabelNode
Draw NSAttributedString in SpriteKit MIT licensed. |
Music Player
Fully functional music player is written in swift MIT licensed. |