登入選單
返回Google圖書搜尋
Untrapped Value:
註釋

Mankind has invested vast resources (time, manhours, computer machinery

sunk costs, maintenance, building space, heating, venting, cooling, and so on)

into software for all kinds of digital and analog hardware for over sixty years.

Far longer if you consider punched cards, and so on. In the end, most of the

source code ends in the waste heap of history. Old code gets forgotten, rubbished,

and a new wave of developers is forced to recreate new versions of old

ideas. People get promoted, graduate from college, and leave to get married;

before they do they don’t have time, don’t believe in the priority, and don’t

place the code where others can find it to make an important curation of their

software; and by this donate it to future generations, worldwide, the society at

large. If organizations, at the other end of the spectrum, would realign software

for a legacy of centuries instead of product runs, mankind can preserve the sunk

costs, speed up advancement, and make software impact far wider when it’s

made in a reusable form. People move to a new job, and remake linked lists,

factory classes, or ring buffers in the new language of the day, or within the

design paradigm of the latest fad management.

It’s kind of insane when you think about it, people spend many years getting

a consumer product working, finely tuned and profitable. Then two companies

merge, product lines are unified or obsoleted, and some or all of the intellectual

property gets forgotten in a corner as one team is merged and the others retire

to golf, or the pool. While filling in cardboard boxes of stuff as they leave, does

anyone drag out the old tapes and floppies to make sure the new guys aren’t

starting by reinventing the wheel?



Why?

The culture has a serious misunderstanding of where the value, where

the intellectual property comes from and where it gets stored. This wasteful

malaise needs to change.

This book is a launching point, not a destination. It is designed to evolve in

small, incremental ways along with your reusable software development guide-

lines, over many years. From novice coders starting out to experienced, and

jaded, software managers; all practical and technical issues are presented in

two natural layers ( for the simplest stratifications - explained in Section 8)-

one, the manifesto paints broad strokes in a proscriptive manner about how

to steer your organization gradually towards code for longevity, and two, the

toolbox brings together a set of free tools to get you started, a bunch of tried

and true realities about what makes sense while plumbing inside someone else’s

code, and realistic high level strategies to make sense of what you find. There’s

no practical way for this small book to cover every topic fully, the manuals

alone for autotools are several thousand pages. But the goal is a comprehensive

perspective, and that can be achieved, quickly.

This book provides a wider perspective, by looking back on the history of

software reuse, and the development cycle not as a painful target to meet and

then forget, but as a stepping stone that brings on differing teams, ramping

up and ramping down, to meet the custom needs of every stage of software.

Doesn’t that sound more productive, on the face of it?

Maintenance was the old end of software development, the goal of software

reuse is to make all software a continual maintenance cycle for mankind. The

goal is to accelerate the next generation farther and faster, perhaps into the

stars. But even in a humble grounded form, make impacts felt worldwide.

Easier to start, longer to impact, cheaper to deliver. The goal of all software

reuse: to untrap all the value stored there by society.

For each chapter, I parallel the main ideas of reuse with a Buddha koan.

Enigmatic ideas smashed together like koans are like the perfect proscriptive

advice: they present paradoxical and enigmatic ideas that appear ungrounded

in the importance of the day, until you wander into a situation, perhaps a con-

flict of ideas, and the answer leaps out of the confusion - linked to your brain by

the wise words of a koan. It all becomes clear, with time, patience, and practice.

Like the discipline needed to transform people’s habits to instill software

reuse, Buddhism is a practice. It is a “life raft built for one”, as the expres-

sion goes. There are many aspects, many dimensions, to consider as important

factors in making software more useful to a wider group. Like any discipline,

there will be areas people stumble, and other areas where people excel, and

areas that take a great deal of resources to conquer. And conquer them you

shall, with some humble guidance and a positive outlook.


Executive Summary:

What is this book about?

Software, made with quality from original sources repurposed, in many

agreed standpoints of comprehension, to meet a wider audience that benefits

mankind for generations instead of fiscal quarters so mankind can maximize

benefit from it for all society.


Who may benefit?

Mankind should be interested in and profit from software reuse, because re-

ducing software development time reduces energy greenhouse gas emissions,

reduces computing machinery wear and tear, provides more ways to accelerate

more people to work on software with security, mission-critical, and real-time

requirements; it provides easier starts for younger scientists and engineers in

Science, Technology, Engineering, and Math (STEM) to profit from and accelerate

their learning and contribution to technology.

Why should society care?

Society has learned from enough bad ideas and bad methods in the progeny

of software to make optimization a priority for everyone’s advancement tomor-

row.


When?

The change needs to happen tomorrow, and this book points a way towards it.


How?

By attacking the top and the bottom of software development at the same

time: the first half of this book describes the ideas from a managerial, or high

level perspective; the second half delves into the nuts and bolts things anyone

might use to get started.


IEEE Source Code Website: https://opensource.ieee.org/daveerickson/reuse-library-abstraction