New CM and numbering scheme

MBH11's picture
MBH11 asked on March 18, 2011 - 9:53am | Replies (13).

First off, I am new here, and I'm not positive that I'm posting in the right section, so please bare with me. I'm sure there are many questions to come.

I am a new software CM. I just got tossed into the job. I was pretty much told that I would learn as I went. I am a civilian, but working with the Air Force. I am assigned to a new platform that doesn't have anything set up already, except for we know which CM tool we are using, which is Microsoft Visual Studio.

I was told this morning that I need to set up a numbering scheme for all software. I don't even know what that means, and no one seems to be able to give me any good direction.

Can anyone help me out and elaborate what this means? I would appreciate it SO much!

13 Answers

davidbfoster's picture

MBH - First, my sympathies.

Second, I am surprised that the Air Force doesn't have processes that would at least give you a picture to look at.

The basics; What is Configuration Management. CM consists of four functions; 1) Inventory; know what you have (Configuration Items (CIs)), 2) Version control; be able to control and track the change that occurs to your inventory, 3) Audit; be able to verify and prove what change has occurred to the CIs in your inventory, and 4) Reporting; tell everyone else what you have and what change has occurred.

Okay, numbering refers to your inventory. What is the business of the unit you are in? In other words, what do they do and what CIs do they use or create? Will you have layers of CIs? In other words, will you have major CIs that are really a collection of lower level CIs? Does your numbering scheme need to take that into account?

This is just a start and there are a lot of good people out here that will chime in.

Hang in there,
Dave

MBH11's picture
MBH11 replied on March 18, 2011 - 10:19am.

Thank you for getting back with me so quickly!!

This just really threw me for a loop, "In other words, will you have major CIs that are really a collection of lower level CIs?"

I feel like a complete dunce right now because I am so confused with all of these new terms.

davidbfoster's picture

MBH,
A collection of CIs is analagous to a software release. In other words, we have software code modules (CIs) that are updated and have their own revision numbers and then we put them all together (build) and create a package or software release which is itself a CI and has its own revision number and is part of the inventory.
Make anymore sense now?
Dave

MBH11's picture
MBH11 replied on March 18, 2011 - 10:32am.

I believe that I am in big trouble :( I will ask my program manager and see what he says.

davidbfoster's picture

Good luck! I am sure you will have more replies.

jptownsend's picture

MBH11,

Most of us have been in your situation so first things first. Take a deep breath. Next here is a practical example of what you could do.

Ok lets say your working on the F22 Fighter Program. Ok you have this plane with all these parts. So the F22 consists of 1,000,000 parts. Those one million parts are a F22 Raptor. Ok lets look at one example the pilots seat, it is made up of 5 part or CI's, but the completed seat is 1 part or CI. So here is what you could do:

F22R.PS.01.PD100. This translates into the Padding for the 1st version of the Pilot Seat for the F22 Raptor.

F22R.PS.01.EJ101 This translates to the Ejection Mechanism, on the first version of the Pilot Seat for the F22 Raptor.

Now if that Ejector Part is made up of two parts a pull cord and a blaster then it would be this:

F22R.PS.01.EJ101.PC100 and F22R.PS.01.EJ101.BL100 respectively.

Now the complexity depends on the number of parts, and every part has a number in what you are working on, whether its physical parts, Documents, or whatever.

Does this make sense?

Regards,

Joe

MBH11's picture
MBH11 replied on March 18, 2011 - 11:16am.

It does make sense! (kinda) LOL

So basically I need to find out what I'm going to be dealing with. The only thing that I know is I'm going to have to keep up with notebooks of I'm guessing TO's and CD's (which I'm not sure what they will have on them (Of course no one is here for me to ask right now.)

davidbfoster's picture

MBH11,
Asking questions is the important thing to do. Find out what is important to your customer. That and the make up of the CIs should lead you to a numbering scheme.

MBH11's picture
MBH11 replied on March 18, 2011 - 11:44am.

Thank y'all so much for your help today! I can't tell you how helpful it is. I have a list of questions made up for my PSM when he comes back today. I will find the answers and then get back to y'all with them.

Wessel's picture
Wessel replied on March 23, 2011 - 3:18am.

As you are working for the Air Force, I propose that you read MIL-HDBK-61. You will find all the help you need in there.

Joe Farah's picture
Joe Farah replied on March 23, 2011 - 2:09pm.

One additional comment. Make sure that your PSM understands the difference between software and hardware. There are many similarities between software and hardware CM, but there are many fundamental differences as well.

To start with, if you have any reasonable amount of software, you should look very carefully at identification. Software can be logically arranged into file tree structures which help you to find things. You're best off if the CM tool assigns unique ids to the software files, that are different than the file names, while the developers use a more natural naming convention.

Don't try to put information into a file naming convention. You'll find that as the organization and information changes, your file names no longer conform to the naming convention. Let the CM tool assign unique ids. Any modern CM tool should have this capability without affecting how developers name files.

In fact, you'll probably have a lot of files called "Makefile" or "ReadMe" or whatever. However, because they occur in different directories, there is no confusion. This is quite similar to a regular file system.

I might really recommend that you look into CM-PIC's Software CM course. It's only been around a short time, but I'm thoroughly familiar with it and it is highly rated by participants.

As well, when you mentioned that your "CM" tool was Visual Studio, I'm hoping you meant your IDE was VS. Because, VS has, at best, a poor CM capability. Compare it to something such as Neuma's CM+ and you'll see what I mean. Whatever CM tool you end up using, watch out for "big-IT" requirements and high up-front costs. But watch out more for ongoing cost of ownership.

Good luck, and feel free to contact me if you need more info on anything I've mentioned.

bglangston's picture

It sounds almost as if you are in charge of maintaining a library of finished S/W rather than S/W development files.

In any event, here's a suggestion that sort of goes along with what Mr. Townsend said. It is sort of like looking at the Table of Contents in a large technical document where you see a heading listed as "4.2.1.3 Coil Lead," where Section 4 is all about the Vehicle Engine, 4.2 addresses the Ignition System, 4.2.1 deals with the Distributor, 4.2.1.1 is specific to the Rotor, 4.2.1.2 to the Cap, 4.2.1.3 to Coil Lead.

In those terms, the "S/W application" has a title ("Car Maintenance").
It has a Table of Contents (TOC-somewhat analogous to a main or trunk program).
The application runs down the TOC to the first trigger (general subject category or module)
It runs in that section to find the right sub-module, and so forth.
Each section has sub-Sections. (smaller modules)
And so forth.

So, your S/W has an identity, as does each section and subsection.

So, if you use an ID system such as the one Mr. Townsend suggests, you can identify each piece and it's relationship within the overall application.

To take this a step further, you now have the problem of identifying the most current SET of pieces. This is where the real confusion can start and where your effort gets really unwieldy.

You application Version 1.0 consists of three modules, each of which is also Version 1.0, and module C has three sub-modules, all 1.0. Somewhere you need to record that App 1.0 consists of the other pieces. Further, you need to record that module C consists of Submodule-(1) Version 1.0, Submodule-(2) Version 1.0, and Submodule-(3) Version 1.0. Here's why.

Submodule-(3) Version 1.0 is modified. It becomes Version 1.1 and installed with the SET. But, by virtue of that change, Module-C is now Version 1.1, and the appliation is now Version 1.1. In other words, the new SET, App 1.1 consists of Module-A v1.0, Module-B v1.0, and Module-C v1.1 (with its submodule-(1) v1.0, submodule-(2) v1.0, and submodule-(3) v1.0).

Hopefully that helps explain some of the reasoning behind the madness. Someone mentioned Mil-hdbk-61A. I don't have it handy, but I seem to recall that creating and applying identifiers is in Section 5. Mil-HDBK-61A is, I believe, still available online.
Good Luck

shreek's picture
shreek replied on May 7, 2011 - 1:40pm.

from what i've read it seems he will need to establish a System Breakdown Structure of the Data or a WBS.

CMCrossroads is a TechWell community.

Through conferences, training, consulting, and online resources, TechWell helps you develop and deliver great software every day.