continuous evolution over software rot long mai agile, software craftsmanship,.net
TRANSCRIPT
Continuous Evolution over Software Rot
Long MaiAgile, Software Craftsmanship, .NET
Reasons to Evolve
• Marketability (internal and external)• Trend• Maintainability• Leveraging new techniques and
functionalities• Bug fixes
What if changing or upgrading…risk factors?
• Entity Framework 6.1.3• Bootstrap 3.3.5• Change layout of dashboard• .NET Framework 4.5.2• Flat design• Unity IoC Framework• Confirmation messages• Single page application• Notifications
> Some Risk Factors
• Team sizes: 1, 6, 9• Project life: 1 month, 1 year, 3 year• Area of impact: single
component/layer, multiple components/layers, cross-cutting
• Scope of changes: daily, bi-weekly, quarterly
• Safety net: high test coverage, low test coverage, no tests
> Lowering Risks for Evolving
• Ability to rollback or undo• Tests• Continuously integrated• Start of sprint (nothing in progress)• Incrementally and iteratively• Do frequently• Transparency of project state• Potentially releasable increment
> Risky!
> Team Risk Tolerance (Compromise)
Jill
John
Bob
Jack
Zach
Areas to Evolve (What and How)
• Architecture (emergent design)• Framework and libraries• UI design• Release• Quality• Tools
> Architecture
• Object oriented principles• Enterprise architecture patterns• Branch by abstraction• Leverage deprecation (incrementally
migrate)• Introduce techniques–Microservices– Service bus
> UI Design
• Trends• New base layout or directory• Reusable components
(leverage js framework, jquery widget/plugin, React, ..)
• CSS organization
> Release
• Ability to rollback safely• Continuous delivery practices
> Quality
• Web, JS• Unit• Integration• Regression• Smoke
Expectations when Evolving
• It will break!• Investment• Each team is different• Each project is different
Review
• Reasons and expectations to evolve• Team risk tolerance• Lowering risks• Different areas to evolve (also lowers
risks!)
What should your team’s next step be?
• Create the right mindset and environment for the team? (Is your team really agile?)
• Put in effort to lower risk?• Evolving more frequently and making
it an expectation?
[email protected]’n Learns