September 2002

Lines of Code that Never Have to be Rewritten

The NJSPIN welcomed Cyrus Karr on September 18 to give his presentation on Software Process Improvement in a Rapid Application Environment. Drawing on his success in getting vendors and users to take on more active roles in the delivery of information systems, Mr Karr described an approach where forming partnerships with many different stakeholders allows developers to maximize their use of "Off the Shelf" (or "Out of the Box") code.

"Getting vendors and end users to help with development is a relationship issue, and I have conducted business in this way since the mid-1980's," said Mr. Karr. "I have been successful because I seek out people who are willing to create a business partnership to achieve a goal that benefits both parties."

To illustrate this approach, Mr. Karr cited a recent data warehousing project where settings within the database platform were used to implement what he called "data-centric business rules." Such data-centric rules might govern the allowable values or format of certain fields such as international zip codes and phone numbers. With the participation of business users, these rules can be identified early and more easily integrated into the database model. And just as important, code would not need to be developed and tested later on to deal with tasks that could already be handled by other system components "out of the box." This speeds the development of the application, without risking quality.

Instead of vendors and users being coerced to participate, this approach lays out a roadmap that offers a more positive approach -- and may be hard to resist. "End users are amazingly cooperative because they want to get a system completed as fast as possible," says Karr.


Business Items:

The next meeting will be held at the Woodbridge Hilton. Next month's presentation will be given by John Bolland, who will share his recent experience in improving ITT's Requirements Management Process.

Presentation

Use the links below to navigate the slides from this month's presentation.
One Two Three Four Five Six Seven Eight Nine Ten Eleven Twelve



Slide 1
Top

Out of the Box


Software Process Improvement
in a Rapid Application Environment




Slide 2
Top

Problem Statement:

The customer wants high quality software at low cost


  • Problem 1: We can't afford to deliver high quality at low cost.
  • Problem 2: We can't afford NOT to deliver high quality at low cost.


Slide 3
Top

Developing a Solution

Possible Approaches


  • Launch into a lengthy, irrelevant technical explanation filled withjargon in the hopes of convincing the audience they just didn't understand the answer.
  • Avoid the subject by announcing a break, and then start a new topic after the break and tell the group you'll discuss it later.
  • Copy someone else's homework.
  • Look at the problem from several different angles.


Slide 4
Top

The Box from Different Angles


What is the box?
  • The traditional software development process

What is inside the box?
  • Software Development Lifecycle
  • Lots of code
  • Version control
  • Testing
What is outside the box?
  • Customers
  • Vendors
  • Business Processes
  • The finished Product


Slide 5
Top

Restating the Problem


  • Problem 1: How do I get the cost down?
  • Problem 2: How do I get the quality up?


Slide 6
Top

Correct Homework Answers Part I

Approaches to reducing cost that may have already succeeded

Get the customer to do some/most of the work.
  • Example: Switch to telephones dialed by the caller.
  • Example: Computer purchases over the Internet.
Get the vendor to do some/most of the work.
  • Example: Japanese auto makers and their suppliers.
Use fewer and cheaper components.
  • Example: Computer hardware use of mass-produced chips.
  • Example: Fifty percent reduction in parts used in computers.
Automate manual tasks.
  • Example: Use barcode scanners in supermarkets.


Slide 7
Top

Correct Homework Answers Part II

Approaches to reducing cost that may have already succeeded

Increase specialization of component supplier industry.
  • Example: growth of communications industry.
Push cost and quality management back into the design phase.
  • Example: Aerospace industry use of computer simulation to design and build aircraft.
Create platforms instead of products.
  • Example: Manufacture of multiple vehicles from a single platform in the auto business.
Create standardized designs and blueprints.
  • Example: Availability of housing designs compliant with building codes for constructing single-family homes.


Slide 8
Top

Solutions Applied to Software - Part I


Increase specialization of component industry.
  • Standard, high-quality components are now available in the form of databases, database connectivity components, web servers, and application servers.

Create platforms instead of products.
  • J2EE and .NET are designed to run multiple applications.
  • Standard interfaces and APIs more common with Windows and Java applications.
Push cost and quality management back into the design phase.
  • Vendors now offer "round-trip" design tools for applications and databases that can combine design and code generation.


Slide 9
Top

Solutions Applied to Software - Part II


Create standardized designs and blueprints.
  • Maturing of Entity Relationship and object modeling techniques.
  • Growth of Software Design Patterns as a discipline.
Automate manual tasks.
  • Code generation from design tools.
  • Ability to reverse- and forward-engineer.
  • Automated source code control environments.
Use fewer and cheaper components.
  • Substitution of application server services such as clustering, messaging, security, and session management for custom code.
Get the vendor to do more of the work.
  • Buy mature components at low cost.


Slide 10
Top

Process Improvement - Developing Databases

Slides and screen shots on projector

Topics covered:
  • Logical modeling
  • Design patterns
  • Physical modeling
  • Code generation
  • Quality Control


Slide 11
Top

Process Improvement - Web Applications

Slides and screen shots on projector

Topics covered:
  • Object modeling
  • Design patterns
  • Boundary Issues
  • Code generation
  • Quality Control


Slide 12
Top

Process Improvement Takeaways


The cheapest and highest quality
process is the one you never have to do.