"Standards make possible the mass assembly of complex things,
and many modern industries would not exist, at least not at their present
scales, without binding agreements as to how parts should assemble into
wholes."1
Reuse is a banner under which organizational standards for software development are disseminated within an organization. More and more of the organizations that we visit are actively establishing standards because of the value standards bring to the organization. This value takes multiple forms:
- Standards provide a basis for communication
- Standards provide common approaches
- Standards enable consistency
These benefits combine to reduce risk, increase development and maintenance productivity, and raise the quality of software development throughout the organization. Let's take a closer look at each.
Standards provide a basis for communication
An article in Intranet Journal describes an intranet project that illustrates the challenges that typically exist between the art department, front-end developers, and architects, all working together to develop an intranet site.2 The site content for the project existed in 600 pages of Microsoft™ Word™ documents, which the team converted to XML. They then generated a Document Type Definition (DTD) that validated the structure of the content. Through this effort, the team was able not only to specify document titles, headers, and paragraphs, but also copyright formats and legal disclaimers.
Adoption of these standards and the conversion of the documentation to an XML format delivered an even greater benefit by making it possible for art department designers and front-end developers to work together, smoothing an otherwise rocky relationship. And information architects were able to apply the same standards to "blueprint" site structure.
Standards provide common approaches
For example, many of the organizations we work with have adopted a standard software development lifecycle process, such as the Rational Unified Process® or RUP® Agile software development, or more traditional waterfall methods. A standardized SDLC provides developers with a sequence of steps and procedures that are followed when developing software, each with specific milestones and milestone review criteria. At one organization, all development teams are required to investigate existing software solutions, both within the organization and those available from third party vendors, as part of the project analysis activities. The development teams are required to submit forms as part of the project milestone review that justifies the development effort. No team can proceed with development until a build-versus-buy analysis is conducted. This forces the development teams to thoroughly evaluate the economic feasibility of alternative solutions.
One organization we worked with was undertaking a data architecture project in order to consolidate databases and standardize the definitions for data across the organization. The organization had multiple divisions, each with its own data representation for a customer, account, product, etc. This made it impossible to accurately report and compare performance across these divisions. The organization saw standardization as the way to achieve consistency for data definition, data access, and reporting.
Industry standards abound, and have done wonders to advance progress and development. Think of the ways that http, TCP/IP, ftp, and other transfer protocols have advanced information exchange. Think about how standards such as JDBC/ODBC have advanced data access capabilities. And think of the impact that SOAP and WSDL are having on intra- and inter-company service transactions.
"Successful standards are those that gain universal acceptance and lower system design and assembly costs for everyone, broadening niches into mass markets.3
In industry, standards spawn competition, and competition breeds technological improvement and price reduction. But do standards have the same impact within an organization? Do we want standards to have the same impact inside a company as they have in the open market?
In the open market, standards organizations establish and disseminate industry standards. Within organizations, we also see the formation of standards-forming bodies:
- Software Engineering Process Groups (SEPG) are standardizing the Software Development Life Cycle.
- Data architects are standardizing data definitions, data representations, and access to data objects for data mining and reporting.
- Enterprise architecture groups are adopting standards for software development tools, deployment platforms, and are constructing standard software frameworks and components.
- Security groups are establishing standards, such as LDAP,4 for user authentication.
These are the groups that are turning toward reuse, since it is under the Reuse banner that organizations can develop and disseminate software standards. Code artifacts certainly embody organizational standards, representing processes, procedures, and data within the organization. However, reuse extends far beyond code, and includes process guidelines and templates; documentation; configuration information; environmental information (development, test, deployment); tests and test harnesses; style guides and style sheets; data elements; data access objects; and reports/data analysis routines. As with industry standards, these organizational standards are increasing productivity, lowering design and assembly costs, increasing quality, and decreasing time to market. Organizational standards are having an impact inside organizations similar to the impact that industry standards have had on the open market.
But what about those organizations that don't have standard-setting bodies? We have seen organizations like this, where reuse and the evolution of standards starts as a grassroots initiative. Development teams realize that development without standards is an art form, not a form of engineering. We have seen these organizations adopt reuse as a mechanism through which to evolve defacto standards for organizational software development.
Software development is a complex process, embodying process, procedure and organizational data. Standards facilitate the development and assembly of software. Reuse is a mechanism that can be used to disseminate and speed adoption of standards.
1 "Build Systems, Not Companies, on Open Standards," by Gordon Benett, Intranet Journal, February 20, 2002.
2 "An XML Framework for Coordinating Creative and Technical Design," by Gordon Benett, Intranet Journal, August 29, 2001.
3 Op. cit., Gordon Benett, Intranet Journal, February 20, 2002.
4 This definition is from Webopoedia:
Short for "Lightweight Directory Access Protocol," a set of
protocols for accessing information directories. LDAP is based on the
standards contained within the X.500 standard, but is significantly simpler.
And unlike X.500, LDAP supports TCP/IP, which is necessary for any type
of Internet access. Because it's a simpler version of X.500, LDAP is sometimes
called X.500-lite.
Although not yet widely implemented, LDAP should eventually make it possible
for almost any application running on virtually any computer platform
to obtain directory information, such as email addresses and public keys.
Because LDAP is an open protocol, applications need not worry about the
type of server hosting the directory.
Copyright © Flashline, Inc. 2003
As a member of the Software Development Productivity Council (SDPC), Sharon Fay draws on her considerable experience to address the technological challenges facing today's businesses as they work to keep pace with the evolution of the global marketplace. Prior to joining Flashline, Fay consulted with companies initiating eCommerce and Web-based application development. Her clients spanned a broad range of industries including financial services, manufacturing and distribution, and non-profit organizations. She began her professional career in 1988 as a systems engineer for Allen-Bradley/Rockwell. Fay holds a Bachelor of Science degree in Computer Engineering, and earned her Master's in Business Administration from Case Western Reserve University's Weatherhead School of Management, where she has lectured on Electronic Commerce Technology.
Comments (Undergoing maintenance)





