Whereas software development is about coding and algorithms, software architecture concerns itself with how the software components fit together. Agility is increased by removing the friction between components, using fewer components, or using prebuilt components, but first you have to determine where in the software development process to insert architecture oversight. Robert Lefkowitz outlines a management process which minimizes centralized control and “gates” and covers six techniques for improving the agility of your software development process: role and authentication-based security, crisp separation between front- and backend, event-driven data flows and designs, third-party integrations, serverless deployments, and promiscuous data collection. Robert defines each, gives examples, analyzes some implications and impacts before explaining how to incrementally inject them into your existing systems.
Robert “r0ml” Lefkowitz is the chief architect for software at Warby Parker. Previously, Robert was a software architect in the insurance, telecommunications, and finance industries. He is also a distinguished engineer of the ACM.
©2016, O'Reilly Media, Inc. • (800) 889-8969 or (707) 827-7019 • Monday-Friday 7:30am-5pm PT • All trademarks and registered trademarks appearing on oreilly.com are the property of their respective owners. • firstname.lastname@example.org