What does it take to create an iOS Application that can have features added to it over a long period of time while resisting the temptation of wholesale rewrites? Can the foundations accommodate bug fixes made after months of neglect and unfamiliarity? What processes and infrastructure facilitate these goals?
Favour determining root causes and effective implementations through authoritative references over trial and error. Reliably measure successes and failures with useful metrics.
When implementing new features or fixes what authoritative sources need to be reviewed? Apple understands the environment they built so we start with their developer documentation, but there is no guarantee that it will be current, correct or thorough. When the official documentation fails, we can reference the less authoritative WWDC talks and tutorials for hints. Conference talks are frequently covering pre-release technologies so they are prone to inaccuracies post-release. Tutorials and their sample code similarly suffer from discrepancies due to the constant evolution of the operating system. Finally, source code or disassembled instructions offer a much slower but more insightful view of the truth. References published by Apple offer the opportunity to intuit their trends and design goals.
The book "Accelerate: Building and Scaling High Performing Technology Organizations" by Nicole Forsgren, PhD, Jez Humble, and Gene Kim provides evidence for the effectiveness of DevOps and its component parts. Related capabilities are: version control, deployment automation, continuous integration, trunk-based development, test automation, test data management, shift left on security, loosely coupled architecture, empowered teams, monitoring, proactive notification.
Capabilities | Solutions |
---|---|
Version Control | git, nix |
Deployment Automation | Jenkins |
Continuous Integration | Xcode Server, Xcode Cloud |
Test Automation | |
Test Data Management | |
Shift Left on Security | Source code analysis, dynamic instrumentation |
Monitoring |
Conference talks are organized by year.
WWDC 2021, etc. Working backwards
in time leads to current information and working forwards in time leads to
understanding how technologies have evolved.