Archive for December 12, 2015

Saturday, December 12, 2015

Yahoo’s Engineers Move to Coding Without a Net

Tekla Perry (Hacker News, Slashdot):

What happens when you take away the quality assurance team in a software development operation? Fewer, not more errors, along with a vastly quicker development cycle.

That, at least, has been the experience at Yahoo, according to Amotz Maimon, the company’s chief architect, and Jay Rossiter, senior vice president of science and technology. After some small changes in development processes in 2013, and a larger push from mid-2014 to the first quarter of 2015, software engineering at Yahoo underwent a sea change. The effort was part of a program Yahoo calls Warp Drive: a shift from batch releases of code to a system of continuous delivery. Software engineers at Yahoo are no longer permitted to hand off their completed code to another team for cross checking. Instead, the code goes live as-is; if it has problems, it will fail and shut down systems, directly affecting Yahoo’s customers.

The article doesn’t say what they mean by “errors” or how they are being counted.

chojeen:

Before the switch, our team (advertising pipeline on Hadoop) used the waterfall method with these gigantic, monolithic releases; we probably released a handful of times a year. Almost without exception, QA was done manually and was painfully slow. I started to automate a lot of the testing after I arrived, but believe you me when I say that it was a tall order.

Soon after I moved into development, QA engineers without coding chops were let go, while the others were integrated into the development teams. The team switched over to agile, and a lot of effort was made to automate testing wherever possible. Despite some initial setbacks, we got down to a bi-weekly release cycle with better quality control than before.

reid:

I’m a programmer at Yahoo -- deploying multiple times a day to production, with the confidence your code will work, feels great.

Manual (“batch-release”) deployments have been forbidden for over a year, which is a forcing function to change development process to allow deploying to production continuously multiple times a day. This requires robust test and deployment automation and for engineers to better understand what they build. It’s pretty nice overall!

diivio:

Microsoft switched to this model a few months after Satya took over.

For the majority of Microsoft teams it worked really well and showed the kinds of results mentioned in this yahoo article. Look at many of our iOS apps as an example.

But for some parts of the Windows OS team apparently it didn’t work well (according to anonymous reports leaked online to major news outlets by some Windows team folks) and they say it caused bugs.

See also: Why Good QA Matters to Businesses.

Apple Pushes iPhone 6s Pop-up Ads to App Store

Roger Fingas (comments):

Apple is beginning to push fullscreen pop-up ads for the iPhone 6s to people opening the App Store app on some older iPhone models, according to a rush of user complaints.

[…]

Apple has previously marketed new devices through things like App Store banners and collections, but this is the first time Apple has temporarily prevented people from using an app simply for the sake of marketing — at least when excluding the Apple Music sign-up screen seen after launching the iOS Music app for the first time.

damonf:

Seems like this should have only been targeted at iPhone 5 or older, given that customers can currently purchase the 5s as the entry-level iPhone model. That’s kinda like buying a low-end/entry level model from a car manufacturer, open up the on-screen owner’s manual, and it has a pop-up recommending you by the high-end/premium model.

Prof_Peabody:

The new Music app was the first of it. If you have a force-press phone, it contains an advertisement for the Apple Music service that cannot be removed and sits there day after day asking you to join up. Every time you upgrade and re-start music for the first time, it shoots an advert at you on top of the one on the force-press menu.

Hell since iOS 8, most of the time when you open a store in an Apple OS, even if you are clicking on a link from an upgrade notification, it takes you to the promotional screen first, then you have to purposely switch back to the upgrades tab. It’s getting a bit ridiculous if you ask me.

Convex_Clock:

It is already the trend. iTunes has alway been bent to try to sell things while I’m trying to use my computer on a daily bases. And on iOS I think it was about a year ago that App Store started defaulting back to the Featured screen, instead of staying on the Updates where I left it. They thought I wouldn’t notice that I see ads now when I update my apps. I did notice, and it bothers me every time.

Previously: Push Notifications to Send Promotions.

Update (2015-12-12): Nick Heer:

Interstitial advertising is obnoxious, and Apple is already too keen on self-promotion in iOS for my liking — you can’t hide the Watch app if you don’t own an Apple Watch, for example.

Update (2015-12-14): Nick Mediati:

Although it’d be easy to dismiss the ad as a hoax—after all, it seems so...un-Apple—other iOS users have confirmed the existence of the popup, both on Twitter and in 9to5Mac’s comments section.

A Macworld commenter says that the pop-up even appeared on an iPhone 6.

John Gruber:

Very strange decision on Apple’s part to do this. It’s uncouth.

Update (2015-12-16): Thom Holwerda:

I got the ad as well, but on my iPhone 6S, which makes even less sense. This is just sleazy and scummy.

Update (2018-03-09): scott:

Apple News spamming my device. This is a full screen pop-up ad in Apple News that forces me to interact with it before I can get to the app.

The only options are ‘sign me up’ or ‘not now’, meaning Apple is going to continue spamming me.

Update (2018-04-14): Joe Baumgartner:

Looks like Apple is advertising via notifications similar to third parties.

Update (2018-06-25): Damien Petrilli:

This is the obnoxious part of Apple I can’t stand. I don’t want to use your service Apple, stop showing it to me everywhere.

Update (2019-02-18): Renaud Lienhart:

This the experience of launching Music.app nowadays: a full-screen, non-dismissible loading modal, followed by a broken marketing upsell.

Appalling 😒

Humble Object Pattern in Swift

Alexei Kuznetsov (comments):

The outside world can just tell [the view controller] to show some data and doesn’t have to know about the UIKit-specific details of presenting it. All labels, text fields, and image views are encapsulated inside a view controller, and only strings and images are exposed.

What’s left in the view controller is a simple mapping of values it receives from the outside to the UI elements of the view it controls. The view controller becomes very humble.

See also: The Clean Architecture:

The overriding rule that makes this architecture work is The Dependency Rule. This rule says that source code dependencies can only point inwards. Nothing in an inner circle can know anything at all about something in an outer circle. In particular, the name of something declared in an outer circle must not be mentioned by the code in the an inner circle. That includes, functions, classes. variables, or any other named software entity.

By the same token, data formats used in an outer circle should not be used by an inner circle, especially if those formats are generate by a framework in an outer circle. We don’t want anything in an outer circle to impact the inner circles.

Previously: Making a Mockery with Mock Objects.