The Quest for General Accepted Practices in Software Architecture and Programming

The Quest for General Accepted Practices in Software Architecture and Programming

The pursuit of universally accepted standards in software architecture and programming mirrors the development seen in the field of accounting with the principles of GAAP and IFRS. While it is possible to establish such standards, the immense breadth of the field makes it challenging to create a singular set of guidelines. This article explores the existing frameworks and the challenges in creating consistent standards across the IT profession.

Existing Frameworks and Standards

There are numerous existing frameworks and standards in the field of IT that aim to provide guidance and best practices. For example, the Data Modeling Body of Knowledge (DMBOK) is a comprehensive resource for data architecture. Similarly, the Project Management Body of Knowledge (PMBOK) offers standards for project management. These frameworks serve as valuable resources, but they often fail to meet the unique needs of individual organizations.

As an IT management consultant, I spent my career developing and tailoring standards for various organizations. It was a constant challenge to customize these standards for each client, as each organization had its own unique practices. The example of ERP suites like SAP is illustrative. SAP's standards are rigid, and when a client's practices differ, it often leads to lengthy and costly implementation processes.

Challenges in Implementing Standards

The implementation of standards in software architecture and programming faces significant challenges. One of the main obstacles is the reluctance of developers to adhere strictly to predefined standards. For instance, if a developer writes a module to produce an invoice, it is often more common for clients to prefer customizing or rewriting the module rather than reusing it. This resistance to software reuse highlights a broader issue within the IT profession: the lack of a consistent approach to coding standards and best practices.

The development lifecycle is another area where standards fall short. In 1991, when I opened my company, the push for standardization was already underway, yet we are still not there today. This sustained challenge underscores the complexity of implementing a unified framework across the IT industry.

The Path Forward

Given the current state of the IT profession, the establishment of general accepted practices requires a structured approach. The first step is to define a framework that organizes different types of work and the corresponding standards needed. A meta-standard, analogous to the frameworks in fields such as accounting, can serve as a guiding principle for creating and adapting standards across organizations.

One approach could be to categorize the various tasks IT professionals perform and develop a meta-standard that outlines the general principles and framework for each category. This meta-standard can then be adapted and customized by individual organizations to fit their unique needs and practices.

In conclusion, while the pursuit of general accepted practices in software architecture and programming is laudable, it is a complex and ongoing challenge. By defining a structured framework and promoting the adaptation and customization of standards, the IT profession can move closer to achieving a level of consistency and quality that mirrors the advancements made in accounting and engineering.