Joel Cummings

On the topic of Computer Science

Accelerated software development seems to be the norm now, things need to get out as soon as possible to get on to the next feature set. I’m reminded of this through using the latest Xcode beta, (Xcode 9 beta 5) and these beta has an issue of very high CPU usage of the interface builder component even when it is open and being used which requires you to stop and restart the app each time it occurs. This is on BETA 5 and the release is scheduled in a month or so to keep up with the new iPhones. This September release date happens each year regardless of features added or complexity of the changes. This seems more common with software these days; Apple is not the only offender. 

Updates and changes occurred much less often years ago, major OS upgrades happened every 5 years or so. Major software updates took 2-3 years in a lot of cases. Yet, somehow these days we expect the major updates to be yearly or even less and then wonder why there are so many bugs in software. Maintaining software quality in apps of greater complexity should require more time, not less. It’s not as if people have somehow advanced substantially in the last few years to require 50% or less time to solve problems. Finding and resolving bugs is an indeterminate process, there are no schedules.

It seems to me that it would be better to slow down and create advanced but reliable software that allows people to get their task done without crashes or having to quit and restart the app to avoid particular bugs. For the major companies controlling these releases such as Apple and Google it would help developers of apps on the respective eco systems as well. They would no longer be rushing to get their app updated by release and can instead take greater time between updates ensuring things work correctly. Maybe iOS and Android releases should move to 2-3 year release cycles and increase quality.