Software Engineering Body of Knowledge (SwE BOK)
|The Joint IEEE and ACM Software Engineering Coordinating Committee professes that "achieving consensus by the profession on a core body of knowledge is crucial for the evolution of software development practices into a professional engineering discipline."|
Efforts to date
The Joint IEEE ACM committee spearheads and coordinates many on going efforts to achieve this consensus. They have published Guide to the Software Engineering Body of Knowledge (SWEBOK) and have developed a SWEBOK, Version 0.7 (Stone Man version) (PDF)
A group of faculty at Embry Riddle Aeronautical University (ERAU) have provided an excellent catalogue of all the SwE BOK development initiatives. ERAU has developed and published a SwE BOK which is one of the more stable version of SwE BOK available currently. A preliminary data base version of this SwE BOK is also available. MS Access file
Despite earnest efforts to collect, categorize, disseminate, and apply the software engineering body of knowledge (SwE BOK), the success have been limited.
Challenges facing the current SwE BOK development approach:
SwE BOK Development is made more difficult by some issues inherent with the software development discipline
A scrutiny of Current Processes
Generally, a group of researchers and/or practitioners collaborate to develop a straw man SwE BOK from their experiences and insights. This process involves activities like developing taxonomy of the knowledge components, conducting literature survey, observing the practitioners and collecting data on actual projects. Once they have developed a straw man SwE BOK, they solicit community agreement (usually through a defined community process) and develop a "mostly agreed" SwE BOK. This SwE BOK is then published either on the Web or in a scholarly journal.
We have observed that the activities involved in collection and categorization of various SwE BOK development efforts have so far been very much human dependent. They lacked any type of automated support except in the areas like document editing and sharing. The lack of automated support augmented by usually a limited number of research personnel contributes to the delay in reporting the collected knowledge. By the time the researchers have developed a straw man SwE BOK, the listed concepts may become outdated. Consequently the community disagrees with the reported knowledge when it is brought to their attention. Like the proverbial dog chasing its tail the "mostly agreed" SwE BOK is always behind the pragmatic application of the knowledge.
Although the primary beneficiary of a generally accepted SwE BOK are developers working in the "trenches," for the most part, efforts to develop a software engineering BOK have been limited to the academia and the research division of very large organizations. The results are published in journals or academic web sites or used for intra-company training. They do not reach the core audience. An enthusiastic practitioner may stumble upon one of these BOKs but she will have to comb through large and complex document for information relevant to the task at hand. The process is not that appealing to some one hard pressed to meet the deadlines. Although, it is conceivable that the presentation of the BOKs in some structured form (database) will enable one to apply filtering or querying mechanism to get quicker access to the relevant information, however, in practice we have not seen a similar initiative. Also, this improvement will only help someone who is aware of the SwE BOK and have access to it.
While the SwE BOK could benefit immensely from the participation of a large group of practicing software developers, the cumbersome community process in place to contribute to the development of SwE BOKs will deter all but the highly enthusiastic developers.
Idiosyncrasies of Software Development