 | Level: Introductory Sharon Fay, Systems Engineer, Flashline
20 Jan 2004 from The Rational Edge: Originally published by Flashline, this article describes some of the benefits of standards ― better communication, a common approach to development, cross-organizational consistency ― and the natural link between standards and reuse.
"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.
Standards enable consistency
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.
Notes
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
About the author  | |  | 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. |
Rate this page
|  |