Is software a document or a part?
PDXpert PLM software manages both part and document
records, and offers the flexibility of using either record class on an assembly's structure
("bill of materials"). So, whichever approach you prefer,
PDXpert software can
handle it just fine. However, let us try to convince you that treating software as a document,
rather than a part, more
accurately reflects its usage in product design,
manufacturing and support.
Why does it matter how software is classified? For the same reason that
other items get classified: to create specific business rules that are applied
to all members of the class. Identification numbers, revision rules, release and
change workflows, authorized users, and other item attributes are defined by (1)
whether the item is a part or document and (2) by the specific type of part or
document.
What does it mean to have "product software"?
Software is a strange thing. You can't touch it, yet it is an essential
ingredient in your product. It gets shipped out with every unit, but even if
you lay out all the components on the part list, you won't see the
essential software code.
For this discussion, software those bits and bytes that the engineer
symbolically crafts during product
design is distinct from its production medium, the physical item that contains
those bits and bytes for use by the computer. There's no question that the medium used in the
product must be treated as a part. The real debate is whether the bits and
bytes themselves are a part or a document.
Typically, a final shippable software assembly consists of at least
- un-programmed medium, such as blank CD-R, empty flash memory, unformatted hard disk,
or pre-masked ROM
- software binary image (on its own medium), often referred to as "golden
master"
- instructions for transferring the binary image onto the blank medium
Does the binary image (or its human-readable source) have a part number, like the blank medium, or a
document number, like the transfer instructions?
Is the software image a physical part?
If the product has to ship with software, then that
software must be planned and available as the product's being built, and
certainly before it leaves the factory. From this perspective, software could very easily
be assigned to the part class.
Software as a component
As a general rule, physical items are assembled into a product (for example,
a machine screw) or otherwise consumed during production (e.g., masking tape in
a paint booth). Some people argue that software is an essential part of the
final product and therefore must be considered a component of, say, a flash
memory assembly or a functioning ROM-based microcontroller.
Software as tooling or fixture
Since more than one finished good can use the identical software code,
there's not a per-item requirement. Instead, a single software object can be used
across multiple units of production. Moreover, the substantial development
cost for software is similar to tooling, in that it can be separately
identified and its cost allocated over a product's life cycle. In discussing
items on the engineering bill of materials, one product data management
consultant contrasts a complex product's parts list with its
"related tooling, fixtures, gauges, templates, test equipment and software."
Is the software image a design or production document?
Documents convey essential instructions for the fabrication, assembly,
inspection and test of a product. A document doesn't ship with a product¹ nor is
there a limit on how often a single document may be used during the
course of production.
Just like every other design and production document, software is not (on a
per-unit basis) planned, purchased,
fabricated, received, routed or
consumed; nor will it be inventoried in the stockroom².
The current iteration is infinitely available, may be updated without affecting
the stockroom³, and can be used during service and repair without requiring
refurbishment or disposal of the previous code.
Its cost may be capitalized and amortized, but this accounting treatment is no different
than for any other design artifact that documents the product.
Benefits of treating software as a document
Naturally, the data you create and manage within a product lifecycle
management system is especially useful to downstream computer systems like ERP,
SCM and CRM. All of these systems work with physical objects that can be
acquired from vendors, inventoried and then supplied to customers.
In treating software as a document, you create an extremely simple way of
ensuring that your computer code is conveyed in an appropriate and approved
physical form (such as compact disk or flash memory). Just as your customers may
not have access to your product's electrical schematics or circuit assembly
drawings, but may only purchase the physical product, so too should your systems
supply only a software assembly (blank medium, binary code and unique part
number) and not the software itself.
The PDXpert PLM data export mechanism can enforce a crisp definition of what these
downstream systems will import by providing only part data and filtering the
document data. The result is that ERP systems will only forecast the blank
medium and the "burned" assembly, and service and support systems will only
attempt to ship physical assemblies, not raw code, to end users.
Best practice suggests that each production release of the software document
is assigned a new document identifier, rather than a revision of the preceding
production software release. This practice will always force a discussion of whether the
software change affects the parent medium-plus-code assembly as an
interchangeable change, requiring only a bump in the assembly revision, or
represents a
significant functional change that requires a new assembly part number.
071117.0942