Software entities should be open for extension but closed for modification. Use abstract classes and interfaces to allow new behavior without breaking existing code.
The C# ecosystem is uniquely suited for Agile because of the : NuGet allows for modularity and easy dependency management.
and Generics enable concise, readable code that is easy to modify.