Programming difficulty for the average netrunner makes it incredibly hard, if not impossible, for a single individual to write any program of consequence. These rules are designed to solve this problem.
The programming rules assume that the programmer(s) in question are writing the program all at once. However, it is possible to write programs sectionally. In this manner, a programmer can write a program piece by piece. The advantage is that a single programmer can write a very large program. The downside is that it takes a little longer, a separate programming roll must be made per section, and he must make an additional roll when putting the different sections together. More required rolls mean that there's a larger chance that something can go wrong.
First, define the program you'd like to write as usual. Decide which components (Functions, Options, and Strength) you want the program to have, and total up the difficulty. Got that done? Good.
The next thing you have to do is break the Components down into groups. Each group must contain at least one component, and the total difficulty of the components in a group must equal at least 10. These separate groups are the different sections of the total/whole program. With me so far?
Now, you've got to actually write the sections. These sections are not functional programs in themselves. More or less, they're like the pieces of Frankenstein's monster. Once you've got them all complete, you can sew them together to make the final product.
A failed programming roll on a section indicates that the code is incomplete, contains errors, or just doesn't work. Unless the roll is a fumble, the programmer will recognize his error, but will still have to take extra time to fix the problem. Time to program each section in hours is equal to that section's total difficulty times six.
It is also an option to have friends or co-workers assist in the programming process. In such a case, the group would merely divide the sections of the program between each other, thereby lessening the time it takes to write them. However, such a group would have to work very closely in order to make sure the sections fit properly, and this is reflected in a slightly higher difficulty number when it comes time to glue the sections together.
Matt's programming buddy, a 'runner by the name of Tricky Ricky, stops by to help Matt speed up his programming time. Ricky decides to do something easy, so he writes the section that contains the Movement and Icon components.
So, assuming you've made the proper rolls and finished the sections, it's time to glue them together. This requires one final roll. The more smaller sections you're gluing together, the harder it will be to make them all connect cohesively and the longer it will take to do so.
The difficulty to connect the sections together into a complete program is equal to the number of sections times five plus one for each programmer past the first who contributed to the project. The time (in hours) it takes to do such is the connecting difficulty times three.
Now that you have the program completed, you must determine how big it is. This is done normally, as if you had written the program with the standard rules.
Commercially-written programs are not normally completed in this manner. Most software corporations have either large development teams, AIs, or a combination of the two writing their products. While programs written by individuals sometimes take longer to write than the usual corporate trash, they don't normally sell for much more than their corporate cousins do.
Later that month, Matt is really hurting for some cash. He offers to sell a copy of Spot to a well-funded hotdogger down at the Silver Circuit. Even though the buyer is a weefle, he's not completely ignorant of software prices. A typical, off-the-shelf Hellhound can be got from most connected software dealers (ie, fixers) for around 10,000 euro. Matt's going to have to settle for 10k even though he spent more time and effort on Fido than a typical corporate software team would have.