Summary
Success in software development is heavily influenced by strategy for the construction of each component. Good code strategy directly influences your ability to react to changing client requests, whether this be through the client not clearly describing the project brief, or needing adaptability for changes in their operating environment. When it comes to making assumptions about software projects, the only safe assumption to make is that specification changes are likely.
Changes to software specifications are always bad news, but code that has been developed to accommodate this can make the difference between changes being slow/painful and fast/efficient to implement. Understanding code principles for object oriented programming, patterns such as MVC and system architectures for APIs will allow you to design code in a way that provides higher degrees of flexibility and scalability across multiple platforms so that your software projects can be upgraded quickly, efficiently and without...