continuous evolution over software rot long mai agile, software craftsmanship,.net

15
Continuous Evolution over Software Rot Long Mai Agile, Software Craftsmanship, .NET

Upload: luke-morris

Post on 04-Jan-2016

213 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Continuous Evolution over Software Rot Long Mai Agile, Software Craftsmanship,.NET

Continuous Evolution over Software Rot

Long MaiAgile, Software Craftsmanship, .NET

Page 2: Continuous Evolution over Software Rot Long Mai Agile, Software Craftsmanship,.NET

Reasons to Evolve

• Marketability (internal and external)• Trend• Maintainability• Leveraging new techniques and

functionalities• Bug fixes

Page 3: Continuous Evolution over Software Rot Long Mai Agile, Software Craftsmanship,.NET

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

Page 4: Continuous Evolution over Software Rot Long Mai Agile, Software Craftsmanship,.NET

> 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

Page 5: Continuous Evolution over Software Rot Long Mai Agile, Software Craftsmanship,.NET

> 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

Page 6: Continuous Evolution over Software Rot Long Mai Agile, Software Craftsmanship,.NET

> Risky!

Page 7: Continuous Evolution over Software Rot Long Mai Agile, Software Craftsmanship,.NET

> Team Risk Tolerance (Compromise)

Jill

John

Bob

Jack

Zach

Page 8: Continuous Evolution over Software Rot Long Mai Agile, Software Craftsmanship,.NET

Areas to Evolve (What and How)

• Architecture (emergent design)• Framework and libraries• UI design• Release• Quality• Tools

Page 9: Continuous Evolution over Software Rot Long Mai Agile, Software Craftsmanship,.NET

> Architecture

• Object oriented principles• Enterprise architecture patterns• Branch by abstraction• Leverage deprecation (incrementally

migrate)• Introduce techniques–Microservices– Service bus

Page 10: Continuous Evolution over Software Rot Long Mai Agile, Software Craftsmanship,.NET

> UI Design

• Trends• New base layout or directory• Reusable components

(leverage js framework, jquery widget/plugin, React, ..)

• CSS organization

Page 11: Continuous Evolution over Software Rot Long Mai Agile, Software Craftsmanship,.NET

> Release

• Ability to rollback safely• Continuous delivery practices

Page 12: Continuous Evolution over Software Rot Long Mai Agile, Software Craftsmanship,.NET

> Quality

• Web, JS• Unit• Integration• Regression• Smoke

Page 13: Continuous Evolution over Software Rot Long Mai Agile, Software Craftsmanship,.NET

Expectations when Evolving

• It will break!• Investment• Each team is different• Each project is different

Page 14: Continuous Evolution over Software Rot Long Mai Agile, Software Craftsmanship,.NET

Review

• Reasons and expectations to evolve• Team risk tolerance• Lowering risks• Different areas to evolve (also lowers

risks!)

Page 15: Continuous Evolution over Software Rot Long Mai Agile, Software Craftsmanship,.NET

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