Skip to main content

Standards and reuse

Sharon Fay, Systems Engineer, Flashline
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.

Summary:  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.

Date:  20 Jan 2004
Level:  Introductory
Activity:  880 views

Illustration "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.

Comments (Undergoing maintenance)



Trademarks  |  My developerWorks terms and conditions

Help: Update or add to My dW interests

What's this?

This little timesaver lets you update your My developerWorks profile with just one click! The general subject of this content (AIX and UNIX, Information Management, Lotus, Rational, Tivoli, WebSphere, Java, Linux, Open source, SOA and Web services, Web development, or XML) will be added to the interests section of your profile, if it's not there already. You only need to be logged in to My developerWorks.

And what's the point of adding your interests to your profile? That's how you find other users with the same interests as yours, and see what they're reading and contributing to the community. Your interests also help us recommend relevant developerWorks content to you.

View your My developerWorks profile

Return from help

Help: Remove from My dW interests

What's this?

Removing this interest does not alter your profile, but rather removes this piece of content from a list of all content for which you've indicated interest. In a future enhancement to My developerWorks, you'll be able to see a record of that content.

View your My developerWorks profile

Return from help

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=Rational
ArticleID=83725
ArticleTitle=Standards and reuse
publish-date=01202004
author1-email=sharon.fay@flashline.com
author1-email-cc=

My developerWorks community

Tags

Help
Use the search field to find all types of content in My developerWorks with that tag.

Use the slider bar to see more or fewer tags.

Popular tags shows the top tags for this particular content zone (for example, Java technology, Linux, WebSphere).

My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere).

Use the search field to find all types of content in My developerWorks with that tag. Popular tags shows the top tags for this particular content zone (for example, Java technology, Linux, WebSphere). My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere).

Special offers