Developers are often seen to be excessively busy, even to the point where jokes often crop up about them shirking real life commitments like hygiene, sleep and social commitments.
While the jokes are meant to be a hyperbole there have been well documented situations where IT professionals end up pulling insane hours in order to fix bugs. While uncommon, these situations tend to occur close to the project deadline or after a release when something goes horribly, horribly wrong. There is also another, much quieter situation which provides a basis for this joke: The constant need to upskill.
Developers work with a wide range of tools on a daily basis and knowing how they all work together is the only way to produce a deliverable which the client is happy with. There’s the obvious tools like text editors and IDEs where we write code, databases where we store information and some not so obvious tools which are still important such as image formats. Sometimes we get to pick our tools which often leads to wars in the community but we are also often stuck with only one real choice.
One of the unique factors of iOS development is the way that Apple encourages updates on the devices. Each release contains enough features that users tend to upgrade and devices are supported for a long time. This is in stark contrast to the Android and (previously) PC worlds where you buy a device and may never see a major update to the operating system during its lifespan. It forces developers to keep up with the latest releases in order to ensure that the user base is able to access their apps and in doing so, encourages forward thinking and planning. Because of this, WeaveIT builds all iOS applications using Swift and we are stuck with keeping up to date as the language matures.
Swift was born out of a desire for Apple to create a modern, safer language which could be used in a more diverse range of situations than their other app development language, Objective-C. They also required it to be backwards compatible with Objective-C to the point where basic structures could be translated 1-1 between the languages e.g. String (Swift) and NSString (Objective-C) were interchangeable. This created issues as most of the functionality with these basic structures were locked into the old Objective-C versions and weren’t obviously available in Swift. Each new version of Swift has been maturing and reducing the visibility of its roots to Objective-C by renaming objects, converting functions to be more Swift friendly and moving functionality away from Objective-C into the new Swift objects.
Each major version update to Swift requires code to be converted and updated to be compatible with the new version. While Xcode does a decent job at this there are things that get missed which need fixing and the developer has to keep up to date with new syntax like the “fileprivate” and “open” keywords that were added in Swift 3. And this is just for one tool!
A lot of this upskilling happens off the clock resulting in developers looking over worked. While it often seems like a harsh aspect of the job, the perception of being unable to function in other parts of life often comes from passionately devouring a new topic rather than exhaustion.