Product update: service interruption should be avoided or announced in advance, backward compatibility, database conversion
 Debug strategy: isolating the code, adding trace logic, and optimizing problem recreation
 Regression tests: making sure other parts, components not broken by the new code
 Sandcastle: a documentation generator from Microsoft via reflection information of .NET assemblies and XML documentation comments found in the source code of these assemblies.
 More easily maintainable: follow best practices and internal standards for coding, logging, commenting, etc. Using OOP plays a major role.
 Debug in production: turn on debug logging, monitor the database in real time
 Load balancing: methodology to distribute workload across multiple devices to achieve optimal resource utilization, maximize throughput, minimize response time, and avoid overload
 Types of Load Balancing: DNS load balancing, Bridged load balancing, and Routed load balancing
 Maintenance most expensive: each change goes through the whole SDLC yet requires all-out regression testing
 Reengineering: examination and alteration of a system to reconstitute it in a new form
 Reverse engineering: discovering the technological principles of a system through analysis of its structure, function, and operation