Hacker News new | comments | show | ask | jobs | submit login

Former OS X developer here.

I'd say the biggest change in the development methodology happened when Bertrand Serlet was replaced with Craig Federighi.

With Bertrand, we would move in giant monolithic releases where every group would just dump in whatever they had ready and the whole thing would get released with nightly builds. With SnowLeopard in particular, I remember three dozen releases in a row where Xcode was unusable due to obj-c garbage collection issues. Random stuff you didn't expect like CoreGraphics would have showstopper issues and then we'd report it and it would get fixed by the next week.

This resulted in extremely late releases that had a ton of bugs that we piled patches onto as time went on.

Craig moved the organization onto a sprint system, where we would develop new features for 2 weeks and then spend a week fixing bugs. After 10 or 12 or 16 of these cycles, we would deem it ready and ship it out.

I felt this produced more stable but more conservative software. It seemed like giant rewrites and massive features would be very difficult to introduce and if they did get done, wouldn't happen until two thirds or so into the release cycle.

On the other hand, Craig has consistently been able to release on time with most of the features promised.

I was only there up to the release of Lion (the first Craig release), so I don't know how updates and patches worked from then on. Maybe they're worse now.

But I've been using OS X all this time, and honestly I don't think it's any worse than before.

What has changed is that releases and features happen more often. Tiger and Leopard had a good 2 years to mature and get patches while their delayed successors missed target dates. In the meantime they stagnated with ancient unix tools, safari build, QuickTime frameworks, graphics drivers etc.

They felt stable because they were just old, sort of like Debian stable. Meanwhile, the development versions of Leopard and Snow Leopard (the two I spent most of my career at Apple developing) were downright horrible and unreleasable. Each of those releases went gold and had an almost immediate .1 release to fix glaring issues.

It's just that you remember them better because they had a longer history as a stable legacy OS than the modern versions.




you remember them better because they had a longer history as a stable legacy OS than the modern versions.

Does this tell us anything about the state of modern commercial OS development? Users like stability and predictability in their software. Sure, they like new whizz-bang as well, but that excitement lasts for a week after you buy a new machine, and then they want stability every day for years.

That conflicts with commercial pressures to sell Shiny New Things every few months. Flat icons? Let's make them skeuomorphic. Skeuomorphic icons? Let's make them flat! Tabs are stupid, let's make them all windows. Windows are stupid, let's make them all tabs! Multitasking is great, let's have more dashboards. Single-tasking is great, let's have more fullscreen! And so on and so forth, rinse and repeat.

I think hardware waves used to hide most of this game, since every year new hardware was so much more powerful than before, you could justify this constant churning as "adding more stuff". This has not really been true on the desktop for almost a decade now, so the long-term patterns emerge and they are quite ugly to see.


> Flat icons? Let's make them skeuomorphic. Skeuomorphic icons? Let's make them flat! Tabs are stupid, let's make them all windows. ...

My guess the other problem is simply this -- they hired so many developers, designers, managers. They produced a great stable OS, worked hard, then it was making billions of dollars. Ok, what next? Institute 4 day weeks? (maybe not a bad idea, but I am being hyperbolic here a bit).

So there is perhaps some pressure from the inside to develop new features. Designers say "flat is best now" so they get to work and feel busy. Developers want to build the next internal restructuring. Managers probably want to be responsible for some new awesome feature and seal their legacy.


> They produced a great stable OS, worked hard, then it was making billions of dollars. Ok, what next? Institute 4 day weeks? (maybe not a bad idea, but I am being hyperbolic here a bit).

It's really a business problem. Once you have a successful high margin product, investors expect you to continue making those numbers. If you sit on your duff then competitors will catch up and you find yourself in a low margin commodity market.

But is it isn't always obvious what to develop, especially once the low hanging fruit is gone. Sometimes there isn't a right answer and the market is simply mature enough that it's destined to become a commodity market.

And if you can't find something good to do, people have an aversion to doing nothing. So instead they do something bad.


I agree, and that was the feeling I got while watching the 2014 WWDC. Heaps and heaps of unrelated announcements (and the feeling that nothing of exceptional quality would come out of it).

I wish Apple had instead focused, for the whole year, on getting iCloud Photos 100% right. Unlike "flat" redesigns, this could even have turned into passive income for Apple. It hasn't even shipped on OS X and I've already given up on it. If they'd just frozen OS X at 10.9, everyone could still work on cloud functionality for years before they'd be "finished".


> So there is perhaps some pressure from the inside to develop new features.

Oh yeah, these pressures are both internal and external. There is a reason concepts like NIH, bike-shedding and "reinventing the wheel" are endemic problems in the software world. I guess we're just seeing that Apple is not immune from them, after all.


>Users like stability and predictability in their software. Sure, they like new whizz-bang as well, but that excitement lasts for a week after you buy a new machine, and then they want stability every day for years.

After years of linux use, I was always excited to see new releases, and how it was catching up with Windows and OSX. Ubuntu by version 10.4 was great, and I loved it, but then I hit the upgrade button and it borked the install (actually that happened a lot before 10.4, with various distributions).

Nowadays I am very wary of system upgrades, because more likely than not something won't work and I can't be bothered to reinstall everything the way I like it.

Ten years ago I enjoyed installing the various flavour of Linux and seeing what new shiny whizz-bang they contained - now I see it for what it is: some novelty eye candy, that rarely adds any real usability). Now I prefer rolling releases, and I am using XFCE, as it is basic and works.

The thing is, it has taken me dozens of installs of Linux to realize that the new shiny whizz-bang shiny features are usually a lot of crap, and my guess is that most "normal" users are still at the stage where shiny is far more exciting than stable. I would expect that Apple fans are even more geared to that attitude. Shinny new crap is what sells, not stable and boring (how many people do you know that use Debian stable, and compare that to Ubuntu users).


It depends on the user, really. A lot of the reason why it took so long (and indeed, is still taking so long) for Windows XP to go away is because it's what people are used to; people don't like change, especially if they don't think it's for the better. This is especially common among the elderly (where there's less receptiveness to learn new approaches when the old approaches work fine) and in low-income households (where there's less time/energy available to learn new approaches when the old approaches work fine). I've found Windows XP -> openSUSE w/ Xfce to be a relatively-suitable migration path for most users, mostly because of their relative similarities (a clear "Start menu" equivalent (that can even be easily renamed to "Start"), the "Mozillascape Firegator" already being installed and ready-to-go, a somewhat-decent office program that looks similar to Office 2003 already being installed and ready-to-go, etc.).

It's also the same reason why Debian and RHEL/CentOS and SUSE are more likely to be found in big enterprises (and/or government/military agencies) than Ubuntu or Fedora or openSUSE or Arch or whatever. Those sorts of users need things to stay consistent. NASA would rather install Debian Stable on the International Space Station and stick with that release (along with perhaps security patches and bugfixes) for half a decade or more than go with Ubuntu and have to biannually retrain its astronauts with every LTS release (and deal with installing the new release on computers that are perpetually falling around Earth at high speeds in the first place). Granted, that's a bit of an exaggeration (Unity isn't that volatile), but I'm willing to bet it factored into NASA's decision to use Debian rather heavily (for example).

I definitely second the preference for rolling releases, however, though not nearly at the pace of, say, Arch or Debian Sid. I run Slackware-current on a couple of my desktops, and I'll probably end up switching to the Tumbleweed repos on my openSUSE-running laptop very soon. Having to deal with two different levels of upgrades is annoying, but so is things spontaneously breaking because changes weren't adequately tested; openSUSE Tumbleweed and (interestingly, thanks to Slackware's conservatism when it comes to software versions) Slackware-current seem to be good balances between those two extremes.


current apple engineer... the sprint (milestone) development system is still in place... it's not the problem though, it's the problem is the focus on new useless [imo] features at the expense of core functionality and quality

hope marco, geoff and others keep writing these articles so that eventually tim or someone sees one and shakes things up. pressure from the bottom has not worked so far


In case you know someone in charge : the wifi performances issues on yosemite are still not completely solved. This is my only gripe with this version so far, but having to turn off bluetooth to get a good connexion from time to time really feels like working on broken software.


Exactly my experience. There's so many hypothetical fixes on the Internet, some seems to improve intermittently and temporarily, some seems to not work at all. But toggling Bluetooth seems be able to get a reaction from the OS at times. It felt like a ritual and I'm praying to the OS god.

Then one day a fortnight ago, I chanced upon another solution. Some people are speculating that because the WiFi signals is clashing with Bluetooth signals as they are both in 2.4 GHz, its affecting the WiFi. I was using Apple Wireless Keyboard & Touchpad. I have friend who had similar setup who seems to have the same issue.

So the next day, I spent 464 USD just to upgrade my router, get a wired Keyboard and a wired Mouse.

I have definitely splurged on these hardwares but at this point I am so frustrated and desperate that I need to make sure any hardware issue is out of the question. These are the only variables I can control, anything else felt hopeless.

I then jumped on 5 GHz WiFi and stop using bluetooth. My WiFi situation have improved a lot since then. Not perfect, but not un-usable.

The point is that I could have saved those money. To spend so as to fix a bug felt so Window'ish. It use to just work, and glitch are bearable, now I always worry of upgrading.

Anyway, those money could have went into buying Apple stuff.


I've heard the same thing, and my setup indeed includes a wireless keyboard and touchpad. But the weirhd thing is that i don't think i experienced thoses issues with the previous os version.

I also read somewhere it was related to Handover protocol using the same bandwidth as wifi. This sounds more plausible. Then having bluetooth + regular wifi + Handover wifi is too much and the connexion suffers. I which case there's not much Apple can do unfortunately, except rethink the whole stuff.

I'd say in any case the future in that matter doesn't look bright.


in fact, it got worse. now it won't auto connect to my networks. I have to manually connect, every single time


would be interesting to hear what the distinction is between useless and core features.

Maybe I'm just not hitting core features with OSX 10.10, but the features I'm using seem fine. And not seeing stability issues with third-party software.


Useless feature: Tagging files 'Home' or 'Work' in Finder Core feature: A filesystem that doesn't get so easily corrupted and need constant Disk Utility scans to stay healthy

Now, I know some people will really want tags and I remember them spending a bunch of time in the keynote talking about them but I'm pretty sure I've never used them. It's not a bad featureā€¦ I guess it's nice and I bet a lot of people use it, but I would prefer if it was built on top of a more solid foundation.


It was my impression that Tags were just Apple's last attempt to avoid having "Folders" in iCloud. Wisdom on the internet is that the file system is bad and must be hidden from users. But if you add folders to iCloud, then what is it, if not a file system? Then iCloud Drive introduced Folders one version later, and now Tags is kind of a legacy feature.

I don't think anyone but management ever really wanted tags.


Folders and tags shouldn't be mutually exclusive.

Folders allow for a simple hierarchical navigation option and allow you to preserve "structure" when round-tripping resources the rely on nested folders in and out of a cloud service. It allows for strong naming and namespaces.

Tags can be user-supplied, crowd-supplied, or even through AI/expert system, and allow for cross-cutting exploration when involving stuff that can't be indexed like text. (Although even documents benefit from tags to ease finding them again when there's a haystack)

Tags require more effort to maintain but are essential when you are dealing with a complex collection.


Yes, I agree, I like tags in theory.

But there is no way to implement user-supplied or crowd-supplied tags when you are practically limited to the seven colours used for tagging, and it only works if you can even remember which colour is used for which tag.


Not to mention that the colors change if you move the disk to another mac.


The issue of HFS+ bit rot is a good example for caring about long-term core features. IIRC we almost got ZFS per default sometime around 2007?

https://news.ycombinator.com/item?id=7876217


Fwiw I can crash the entire OS by abusing tabs in Chrome. Too many tabs open => System freeze, hard reboot required. OS X Mavericks on MBPr 15".

That shouldn't be possible. Crash the browser yes, not the whole OS.


I was also experiencing something like this. I would open lots of tabs, and at some point the machine would freeze and I would need to do a hard reboot. This got worse after installing Yosemite, where I could rarely go a day without having to reboot my system.

I was about to take my laptop in to see if it was a hardware issue when a coworker pointed me to a forum where someone suggested turning off automatic graphics switching. I did that about two weeks ago, and since then I haven't had a single occurrence of the issue. You may want to try the same thing to see if it helps.


Interesting! Wonder if it's a quality control issue with the code handling the graphics switching. Afaik, Apple engineers write custom video drivers for every supported hardware device. Wonder if Intel is now contributing more to the graphics driver updates and maintenance.


Interesting! Wonder if it's a quality control issue with the code handling the graphics switching. Afaik, Apple engineers write custom video drivers for every supported hardware device. Wonder if Intel is now contributing more to the graphics device efforts.


Interesting! Wonder if it's a quality control issue with the code handling the graphics switching. Afaik, Apple engineers write custom video drivers for every supported hardware device. Wonder if Intel is now contributing more to the graphics driver updates and maintenance.


Interesting! Wonder if it's a quality control issue with the code handling the graphics switching. Afaik, Apple engineers write custom video drivers for every supported hardware device. Wonder if Intel is now contributing more to the graphics driver updates and maintenance.


Interesting! Wonder if it's a quality control issue with the code handling the graphics switching. Afaik, Apple engineers write custom video drivers for every supported hardware device. Wonder if Intel is now contributing more to the graphics driver updates and maintenance.


Interesting! Wonder if it's a quality control issue with the code handling the graphics switching. Afaik, Apple engineers write custom video drivers for every supported hardware device. Wonder if Intel is now contributing more to the graphics driver updates and maintenance.


Interesting! Wonder if it's a quality control issue with the code handling the graphics switching. Afaik, Apple engineers write custom video drivers for every supported hardware device. Wonder if Intel is now contributing more to the graphics driver updates and maintenance.


Interesting! Wonder if it's a quality control issue with the code handling the graphics switching. Afaik, Apple engineers write custom video drivers for every supported hardware device. Wonder if Intel is now contributing more to the graphics driver updates and maintenance.


Sounds like you have a hardware problem, actually. Faulty GPU or RAM, quite likely.


No, you can't single him out like this: Since Mavericks, OS crashes are very often reported, and Chrome tabs seem to be often reported as a cause. I myself have never had crashes with Snow Leopard and I see them often in Yosemite. That's exactly why we see articles reporting the Apple has lost the Quality ground.


I have exactly the same problem on multiple machines.

Plus, the wifi fiasco, over which more than one person should have been fired.

I am barely sticking with Apple for now, mostly because in startups it is the default, but I don't plan to replace my apple equipment with more apple products.


Same deal for me with Safari. No, it's not acceptable for an entire system to lockup, and no this is not hardware related.


It's just brutal in Yosemite. This is the first release to which I regret upgrading. I've never had so many issues on my laptop, and it has never been so slow. My FileVault encryption has been stuck at 99% since I upgraded and enabled, and Apple marked my radar report as a duplicate. They can't/won't tell me if I'm forever hooped or if it will ever be fixed. At this point, I'm looking to spend a day rebuilding my whole system.


I was running the beta and it was pretty rough but that's what happens when you run betas. But then for over a month after gold-master it was STILL really problematic.


Yikes. Whats you're telling us is bug fixing and the incurring of the deep, deep, technical debt isn't seen as a problem. Unfortunately this debt is also being shackled to the 3rd party developers since we have to compensate for Apple's bugs. Not fun.


> pressure from the bottom has not worked so far

wait, this is causing friction? they fired forstall to get total gleichschaltung and now ppl elsewhere are revolting? i hope this'll come to fruits. this whole cozy-collaboration-and-nobody-saying-no thing has to stop.


But how did things like NSURL defaultCache and other base-components get broken in iOS8? There seemed to be work on the fundamentals that broke them right? It's not just that the new flashy stuff stuttered or crashed...


I still can't understand how it got through any sort of automated testing. Which they have to be using, right?


Keyboard input language switching between apps has been broken for 10 years now. Yosemite broke it further.


The good thing about the nightly builds was you didn't have to use them, and people could respond quickly to showstoppers rather than wait for a sprint. There was a quicklook team to catch bugs which stopped nightly builds from release to general dev, and unless you really needed that build ( to test a new API) you didn't install until quality was restored. The xCode bug was therefore unusual, as they could have fixed it the next day ( and with enough heat they would have).

With fortnightly builds which are only then released to Engineering, if that is now what is happening, there will be massive instability every 2 weeks, until the final round of bug fixing cycle stops all features being added.

Which can't finish in time because the OS has to be released at an Apple event. Except for 10.0 when the date was known months in advance the old OS cycles were released when ready ( when show stoppers were 0). Of course that did lead to some wrangling about what a show stopper was, but consider if iOS 8 was not released with the HealthKit bugs, and other major issues, and instead we got what was in iOs 8.1, or 10.1 instead of 10.0.

Still some issues but mostly robust. Apple needs to decouple software from hardware releases.


The good thing about the nightly builds was you didn't have to use them, and people could respond quickly to showstoppers rather than wait for a sprint. There was a quicklook team to catch bugs which stopped nightly builds from release to general dev, and unless you really needed that build ( to test a new API) you didn't install until quality is restored. With fortnightly builds, if that is now what is happening, there will be massive instability every 2 weeks, until the final round of bug fixing cycles. Which can't finish because the OS has to be release at an event.


> But I've been using OS X all this time, and honestly I don't think it's any worse than before.

Agreed. Yosemite has been flat out the best OS X version I used. Zero bug except a few Airplay issues. I'm even using beta builds for production, this thing is that stable.

I'm suspecting that Marco's point shows how a maturing part of the developer/consumer now takes a larger mindshare. Not a bad thing, it's just that it doesn't tell much on the product.

edit: Marco says thisĀ gets him 7.8m/s traffic, so there has to be something for _many_ here.


Yosemite has regressed, in my opinion. All Screen Sharing sessions cause my MacBook Pro to freeze for 5 minutes after they are closed. I had to reboot the laptop many times.


Have you reported this to http://bugreport.apple.com/ ? I know most of my Yosemite / Mavericks bugs were tagged as duplicates, but there might be some sort of a "wow, so many duplicates, let's fix this" type of ranking re: bugs reported to the Radar.

I, for one, would wish Mr. Federighi would push out a Snow Yosemite. No new features, simply bugfixing. I have taken to simply posting screenshots on my blog about various AppleQA issues. I wish there was a way to really make a difference, god know I'm fanatical enough about wanting Apple stuff to just work.


You should consider showing this behavior at the genius bar if that is feasible for you. It's not normal for Yosemite.


> Craig moved the organization onto a sprint system, where we would develop new features for 2 weeks and then spend a week fixing bugs. After 10 or 12 or 16 of these cycles, we would deem it ready and ship it out. I felt this produced more stable but more conservative software. It seemed like giant rewrites and massive features would be very difficult to introduce and if they did get done, wouldn't happen until two thirds or so into the release cycle.

I've noticed this problem too in Agile shops. Small iterations happen fast on well scheduled. But big new efforts tend to be like swimming up-river. Whatever comes after Agile is probably going to formalize a long-track parallel cadence for a dedicated team to grind away on. Then once that's released it goes into the normal sprint cadence.

It seems to usually be "solved" right now by lots of weeping, halting production and blowing up of anybody else's schedule.


> I've noticed this problem too in Agile shops. Small iterations happen fast on well scheduled. But big new efforts tend to be like swimming up-river. Whatever comes after Agile is probably going to formalize a long-track parallel cadence for a dedicated team to grind away on.

That seems to be a not-that-uncommon practice in Agile/Lean environments with the resources to implement it already (you don't see a lot of coverage of it in books about "Agile" software methods specifically, though I've seen considerable coverage of it in "Lean" software development books -- which tend to address the kind of pragmatic metamethodology the Agile manifesto calls for, while "Agile" books, ironically, tend to focus on more on narrow prescriptive methodologies, particularly Scrum and close variants.)

The immediate and longer-term (or multiple potential solutions with different risk profiles without a strict "this one is for now, this one is the long term objective solution" division) in parallel thing that Google has done in lots of areas for a long time (and people outside often question with "why is Google doing both X and Y when they have overlapping use cases".)




Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact

Search: