Object-Oriented Software Development
I was fortunate enough to have been exposed to Object-Oriented Software concepts very early in my career. Since then I have spent the majority of my career focused on Object-Oriented Software Design and Development in the belief that as business target markets grow and change with the ebb and tide of changing technologies and new generations of customers, partners, and workforce that software must be flexible enough to change with the same pace. Software must be robust enough to handle the changes we face every day. As Heraclitus wisely once said, “The Only Thing That Is Constant Is Change -”. We need a discipline that assist us in keeping software flexible to handle market changes quickly, robust enough to incorporate changes not yet known, and maintainable for growing and changing software teams.
Agile Software Development
Agile Software Development is a practice adopted by many companies and software professionals to address the issue of quickly changing target markets and the tidal waves of evolving technologies. I believe there is a place appropriate for many different techniques. Agile works well for prototyping and getting new products to market quickly. Once a new product has been adopted by the target market, software teams and companies would do themselves a great favor by revisiting the software design utilizing an Object-Oriented approach for future versions of the product.
Why, you ask?
Because of cost! If done correctly, a system built using Object-Oriented design methodologies is radically more flexible and maintainable. Sweeping changes can be made with few modifications to the code and the fewer the modifications the fewer test cases need to be retested. Encapsulation is the most basic principle in Object-Oriented design. Encapsulation from the larger perspective means compartmentalizing code by functionality. A perfect example of this would be using software interfaces as mediators enabling a User Interface to interact with the application. Doing this, a completely new User Interface could give a "face-lift" to an old system.
I was fortunate enough to have been exposed to Object-Oriented Software concepts very early in my career. Since then I have spent the majority of my career focused on Object-Oriented Software Design and Development in the belief that as business target markets grow and change with the ebb and tide of changing technologies and new generations of customers, partners, and workforce that software must be flexible enough to change with the same pace. Software must be robust enough to handle the changes we face every day. As Heraclitus wisely once said, “The Only Thing That Is Constant Is Change -”. We need a discipline that assist us in keeping software flexible to handle market changes quickly, robust enough to incorporate changes not yet known, and maintainable for growing and changing software teams.
Agile Software Development
Agile Software Development is a practice adopted by many companies and software professionals to address the issue of quickly changing target markets and the tidal waves of evolving technologies. I believe there is a place appropriate for many different techniques. Agile works well for prototyping and getting new products to market quickly. Once a new product has been adopted by the target market, software teams and companies would do themselves a great favor by revisiting the software design utilizing an Object-Oriented approach for future versions of the product.
Why, you ask?
Because of cost! If done correctly, a system built using Object-Oriented design methodologies is radically more flexible and maintainable. Sweeping changes can be made with few modifications to the code and the fewer the modifications the fewer test cases need to be retested. Encapsulation is the most basic principle in Object-Oriented design. Encapsulation from the larger perspective means compartmentalizing code by functionality. A perfect example of this would be using software interfaces as mediators enabling a User Interface to interact with the application. Doing this, a completely new User Interface could give a "face-lift" to an old system.