My mother asked me the other day whether I know what KISS is. The mention of the Keep It Simple, Stupid principle reminded me of a presentation that I made at work about a year ago. The company I was at was struggling to deliver a quality product while keeping up with piling user demands (and customizations). The management team was at a loss as to how to motivate the development and quality assurance groups and how to measure the outcomes. This problem is complex, multifaceted, cultural, and not uncommon within the software development community. While the unified theory of software laws still eludes us, there are many different approaches, styles, and philosophies that the software development industry can work with to meet their goals.
Here I outline some of the current trends popularised in small to medium sized software companies.
This article is a collation of other people's work. Any misplaced or missing credit is not intentional. If you know of an omission, please let me know and I will correct it. For more details, refer to Resources.
Agile software development processes are built on the foundation of iterative development. To that foundation they add a lighter, more people-centric viewpoint than traditional approaches.
While Iterative development approaches have their advantages, software architects are still faced with the challenge of creating a reliable foundation upon which to develop. Such a foundation often requires a fair amount of upfront analysis and prototyping to build a development model. The development model often relies upon specific design patterns and entity relationship diagrams (ERD). Without this upfront foundation, Iterative development can create long term challenges that are significant in terms of cost and quality.
This article is incomplete. It is only skin deep. But I hope that it provides a glimpse at some of the ideas, terminology, and challenges in circulation in the software development industry. It is meant to tease you into areas that may not have caught your attention yet. In the future, I would like to be able to catalog all approaches, styles, and philosophies of software development; and provide adequate example(s) or case study for each one of them - in a structured, user-friendly, centralized format. : )
This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)
General News Suggestion Question Bug Answer Joke Rant Admin
The Next Version of Android - Some of What's Coming