RE: Re: SIP is "just another Six Sigma measure"?

"Oli Bye" <[email protected]> Fri, 31 Jan 2003 23:58:41 -0000
Newsgroups gmane.comp.programming.software-in-process
Message-ID <[email protected]>
I'm still convinced you're onto something Dan.

There are some nice clues about debits and credits in your post. I look
forward to something about books, journals and memos.

In your paragraph about XP "selecting tests piecemeal" being bottom up, and
bookkeeping being bottom down: Is that top down as in "My Financial Director
being happy because we spent 2M GBP last year but invoiced 3M GBP, and
there's 1M GBP in the bank"?

I.e. down, do you just say: "I know this whole lot balances" and drill on
down from there?

Oli

-----Original Message-----
From: Dan Palanza [mailto:[email protected]]
Sent: 22 January 2003 15:18
To: [email protected]
Cc: [email protected]; [email protected]; Carol Findell
Subject: Re: [SIP] Re: SIP is "just another Six Sigma measure"?


Hi Dossy,


In my experience, business needs don't stay the same for long enough
where a "universal application" can be cost-justified.  They tend to be
orders of magnitude more costly than the "unique application" which is
custom-fit to solve the specific known problems of today without too
much anticipation of future problems which we may or may not need to
solve.

Nice. I will argue that in bookkeeping those orders of magnitude can be
reached through iterative process typical of XP. Where XP is bottom up in
the sense of generating unique coded solutions, bookkeeping supplies a
design toward universal architecture. Bookkeeping, like XP, works best when
constructed by iterative process; one need only implement what is essential.

Unique versus universal has its cost consideration in double entry
bookkeeping as well. In bookkeeping a debit system defines behavior unique
to individual contributors. A simple bookkeeping is a pocket full of cash
from which one pays each worker directly. Balance is expressed, as revenue
is added, by how much cash is in the pocket.

Credit differs from debits; as debits measure unique contributions, credit
expresses a universal potential as working capital. Credit comes into play
when an owner assigns debit value into a universal accounting, where value
of different types can be identified. Without universal credit accounts
there is no bookkeeping true. An analogy would be to program with out code.
Debit versus credit is unique cash value versus universal capital expression

Does unique versus universal occur in pattern form XP? IOW, where
bookkeeping begins with universal accounts to order the value of unique
contributions of work, does XP begin with something unique, such as the
application code versus something universal? I believe it does, and I also
believe that a professional approach in each discipline will want to refine
both the unique and the universal consideration.

In XP work begins with a work order, as story card. The programmer makes an
assessment of a sensible, simple starting point. Before writing code the
programmer adopts a rule in the form of a test, as control (keep in mind
that in bookkeeping accounts are control tests). "Code must behave according
to this test's rule."  The test in XP, I will argue, is a beginning point of
universal considerations of XP. As you build story upon story you will
refactor your test strategy to enable fewer rules of test to generate
increasingly complex roles played by the code. The pattern in bookkeeping
reveals that where roles are factored toward allowing complexity, rules are
refactored toward a refined simplicity.

There may be any number of ways to write code that completes a story card,
but the XP programmer is arguing that all of the many ways that might have
been created will follow a set of rules that are fewer than the possible
behavior patterns code can generate. And so by focusing on universal rules,
as tests, stronger and more flexible. code patterns can be created when
subject to tests.


Implementing features to solve problems of tomorrow is like keeping
inventory.  Keeping excessive inventory is waste -- thus, if we can
position ourselves to develop software in a just-in-time fashion,
minimizing the amount of "feature inventory" we keep ... we can react
quicker to our business needs while keeping costs at a minimum.

In principle, your argument makes sense. I would counter that XP, which
separates code versus test, is taking advantage of a natural relation
between unique behavior as code versus universal identification in tests
whose rules successfully control code behavior. The test is a control
device. I argue that in selecting tests piecemeal, XP is primarily focusing
on bottom up design. Code can be written to do anything--the danger of
excess inventory of which you speak--which brought XP into being in the
first place.

In due time I hope to show that bookkeeping offers much more natural ways of
measuring the excesses of which you speak. But to get to that day in time, I
need to first convince you that bookkeeping is worth the up front effort
needed to understand its pattern. To do that I will argue that bookkeeping
differs from XP only that its iterative process works top down versus XP's
iterative process that works bottom up.


Since we can't change what we can't measure, we measure things like SIP
to give us an idea of our software-work-in-progress.  This will, at some
future date, convert into "software feature inventory".  Inventory that
we cannot "sell" or features we don't use, is waste.

Again, your argument is clear and correct. What is less clear is the rule by
which SIP will be meaningfully measured within the entity as a whole: the
effect on capital's potential.


Again, this is why minimizing SIP /time/ isn't necessarily good.
Sometimes, we might want to look at minimizing SIP /quantity/ instead or
as well as SIP time.

What is the difference between /time/ and /quantity/? In this context
quantity seems to me to be an amount of time. Aren't we looking for a
/value/ of time so that we can compare software costs with other choices we
might make in spending capital ?


Even if our SIP time is really low (we push
features out the door fast), if those finished goods can't be moved out
of inventory (actually used and value received from the business
customer) then we're just stockpiling inventory at a fast rate.

It seems to me that what, if anything, is being inventoried is the value
paid out to programmers for time contributed. In bookkeeping this is called
an "expense." The bookkeeping rule is to measure expense against some form
of revenue. Say that 4% of total revenue is devoted to information
technology (IT). If IT expenses exceed that figure then an alarm sounds. One
might look for ways to justify an overage because the extra work generated
increased profit, or whatever.

In economic metrics, if not all metrics, there is always a "versus" issue:
expense versus revenue.


Perhaps a complimentary measure to SIP would be a finished-goods
inventory measure vs. orders shipped -- how many features are
implemented that are actively used by users vs. are in the product but
aren't being used.  When the latter increases faster than the former, it
should raise some flags ...

I believe you would do well to abandon a manufacturing model for software's
metaphor and adopt the pattern model in its place. Software, like
bookkeeping, is a professional service. An issue in common with
manufacturing, when using the pattern metaphor is capital.

Capital, in bookkeeping, is an expression of a business entity's potential,
typical of heat energy in an electrodynamic system. Money is often thought
of as synonymous with capital both because it is a reusable resource, and
its presence gets work done. The expressed value of software is most like
money, with maintenance cost in analogy to interest cost. Software, like
money, is reusable, and at far less cost than money, particularly once code
is in place.

This takes us back to the unique versus universal argument. If you owned the
company, likely you would want to see code continually refactored toward a
universal set of rules, as tests for accuracy and completeness that could
serve the company's complete IT needs. Now I know this is a tough problem
considering compilers, databases, legacy code, etc. But aren't all things to
be considered by a company in addition to XP's SIP? Wouldn't a top down
model, typical of bookkeeping, get the future savvy business person in this
position? I see bookkeeping as XP's best friend.

My argument to you is, that if you had a good bookkeeping framework to work
with, you would not only be working bottom up toward that goal in XP, you
would be working top down by using the bookkeeping pattern. Why reinvent it,
as SIP attempts to do? You might see a day when you would ask yourself why
you would ever give anything so valuable as the code you create away for a
pittance of what it is truly worth. Do you see the Bush Family White House
giving money away for a pittance? No, they are taking money back out of the
treasury wholesale to give it back to the rich for recycling.

Do you believe for a minute that people motivated by money will care whether
software people are gainfully employed or starving, in the future? I don't
want to create panic, but perhaps if software people learn to reason the way
rich people reason it would be good for the world, so far as creating a
natural harmonic balance between unique bottom up creativity versus
universal top down control.

Dan
Yahoo! Groups Sponsor
ADVERTISEMENT




To unsubscribe from this group, send an email to:
[email protected]



Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.


To unsubscribe from this group, send an email to:
[email protected]

 

Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/