Explore 1.5M+ audiobooks & ebooks free for days

Only $12.99 CAD/month after trial. Cancel anytime.

Untrapped Value:: Software Reuse Powering Future Prosperity
Untrapped Value:: Software Reuse Powering Future Prosperity
Untrapped Value:: Software Reuse Powering Future Prosperity
Ebook369 pages4 hours

Untrapped Value:: Software Reuse Powering Future Prosperity

Rating: 0 out of 5 stars

()

Read preview

About this ebook

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 guidelines, 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 #)- 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
LanguageEnglish
PublisherLulu.com
Release dateJun 15, 2022
ISBN9781387866991
Untrapped Value:: Software Reuse Powering Future Prosperity
Author

David Erickson

David Erikson is the author of several books, including The Norther Force Book Series, Inside the Cover, Hurricane Blast, and Dniknam the Lesser. He was born to missionaries, Wesley and Gladys Erickson, who ministers to the American Indians in Nevada. David was the elder child of four brothers and a sister. David and his wife, Janice, have three sons and three daughters between them. They currently live in Missoula, Montana.

Related to Untrapped Value:

Related ebooks

Programming For You

View More

Reviews for Untrapped Value:

Rating: 0 out of 5 stars
0 ratings

0 ratings0 reviews

What did you think?

Tap to rate

Review must be at least 10 words

    Book preview

    Untrapped Value: - David Erickson

    Introduction

    Since Everything is a Reflection of Our Minds, Then Everything Can Be Changed By Our Minds.

    Siddhartha Gautama, The Buddha

    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 guidelines, 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 #)- 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 conflict 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 expression 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 reducing 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 tomorrow.

    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.

    In this chapter we set out the grand visions of what software reuse might be, in the next we bring forward the ideas that will be top of mind if you venture into the business of software reuse.

    Software Reuse: Conceptually

    With Our Thoughts,

    We Make The World.

    Siddhartha Gautama, The Buddha

    Software is a collection of ideas. Whether in human readable thoughts like a book, or in machine language code in many files, or stored on firmware, even the relay-ladder logic in a garbage truck 's electrical relays turning hydraulics on and off, these ideas outlive the form they are encapsulated in. That is, they are built to outlast the implementation, but mankind hasn't valued idea capture to the same priority as productivity or novelty.

    In the time of hectic progress, we tend to narrow our view from the horizon down to the next corner, the next obstacle to avoid, then next fiscal quarter. That doesn't foster the kind of higher ideals that come with thinking of keeping software like fine artwork. Leonardo da Vinci may have taken 5 years to paint the Salvator Mundi, but that still amounts to five man-years. The auction value of Salvator Mundi was $497.8 million USD. Many software projects take man-decades to produce at valuations that are nowhere near as valued. Perhaps the mindset must start at appreciating software value in bigger terms?

    Take a step back from your problems, from your recent mindset, and consider the age of some ideas.

    Sir Isaac Newton 's Principia Mathematica was written in 1687: 5 July, 1687. The world's application of these mechanical laws were dovetailed into mechanical machines over generations, the cotton ginny, the steam engine, and so on. Some of the greatest uses of Newton's Laws of Motion arrived with generators and engines of the 18th and 19th centuries. Some would argue that the greatest application was achieved by Orville and Wilbur Wright , bicycle mechanics from Ohio, when they achieved powered flight ¹ on December 17, 1903. What might have happened if Newton's Laws died out in books and devices, in the 17th century?

    That's a time difference of about 216 years from the publishing of Newton's Laws to a heavier-than-air machine powered flight. A success for mankind that makes the full cycle from knowledge discovery, through knowledge innovation, unto technological implementation that impacts us all.

    Now, consider how efficient mankind might be if the novel ideas in circulation amongst the thought leaders of the day, and the people that innovate upon them, if they were created, operated, and then left in the dustheap of history within a few months. Or a few years, perhaps a few decades? The duration of an idea is ENTIRELY DEPENDENT on the media it inhabits, including the minds of those that understand it. Not the relative applicability of current or over the horizon applications. If it is kept in the catalog, if it gets recycled, it lives on long enough to make it to the next great use. Unfortunately, the final location of many ideas inhabits two vastly different outcomes: ideas that win over the marketplace - by profit margin alone - live on, and the ideas that lose the marketplace in the short term, become detritus. Ideas that may not have arrived on time may be just the solution people need just a few years later. Will those ideas be there when it counts? Are we aiming too low to our grandkids' detriment?

    Society has many needs. And it has organizations with corporate memories measured in centuries because they are entrusted with maintaining the societies they oversee. The human justice system, the medical healthcare system, politics, technology-based societies, and so on. The human endeavours of STEM , the cradle of all technologies and the lifeblood of tomorrow's needs, must have access to all ideas. Including vacuum tubes. Including Van De Graaf generators. Including hydraulic swash plates.

    The obvious retort would be to question why the ideas have to be put back into open software when they have been in software before? And don't they exist in many books, papers, journals, and so on? Well, the first problem is that admits massive failure to keep value. How many wasted efforts would be enough to satisfy anyone's needs? Second, if the result of quickly built software code, full of bugs and wished changes, was not optimal then wouldn't it be better for all to expend that effort on improving the existing code to a better standard than the original? Ideas in theory, in books or videos, aren't the finished product, working software is the finished product. Books don't encapsulate all the problems, bugs like noninitialized pointers surface using only after hardware, firmware, and software are brought together in integrated form. To suggest you don't need the finished software source product is to accept reinventing the felloe's plate (an American wagon wheel is made of a hub, spokes, felloe's, and tires. You need a felloe's plate to hold the felloe's together under the tire) over and over.

    And let's talk about climate change and topical wastes of energy like Bitcoin block chain computations. Does it make sense for the environment, for mankind, for political expediency, and so on, to continually pay for new sets of people to reinstate the same software ideas over and over for a new set of applications? In a time of saturated needs, should software be allowed to be as wasteful?

    If you know object-oriented software, and have suffered some sort of odd behaviour that comes and goes or after a revision does things you've never seen before, that is an open secret that the objects being used together, mainly by an Object Oriented Programming (OOP ) concept known as inheritance, that has changed the obvious behaviour to the user comes from a place of noncomprehension. Object oriented programming, the last bug fad, results in rapid use of objects without necessarily a complete understanding of this version of how the software works after updates, or the last version. Doesn't it seem like the current model has done a poor job of optimizing how people make code if they can't solve the bug and crashes issues after decades of work?

    What this book does, what value it delivers to you now and into the future, is that it combines the ideas and the mechanisms together to act from the large and the small perspectives onto the entirety of the problem. There is no way any novella, nor a multi-part encyclopedia will cover all the important reuse aspects to the satisfaction of all. It doesn't bog down at the technical level, but it demonstrates with real economic numbers how fast you can recapture value. It doesn't solve all problems of unseen unknown work, but it presents the necessary concepts and broad strategies that will inspire your thinking on how to augment code for your own use.

    Ideas in a useable form: Comparables

    Let's begin our analysis by explaining what kind of things software reuse should include and look like if it wants to attain the same stature of usefulness and importance in STEM; by comparing the problems and needs of reusable software to other orthogonal ideas that worked better in other fields, we can make a start at arriving. This exposition merely takes what you already know about things and reframes them from the perspective of the knowledge contained; remarkable factors explain how and why they work in the general sense. You will find most of the knowledge I present herein takes existing knowledge from forward of concepts taught many years ago, and relooking at those same things from a deeper knowledge base and fresh perspective to make their deeper, profound knowledge clear. But this simple mindset follows my deeply held principle that tomorrow's discoveries appear from yesterday's assumptions ( axioms assumptions principles).

    The first, obvious one is Dmitri Mendeleev 's Periodic Table of Elements . Odd, as the war between Russia and Ukraine flares on today, this book describes a part of the shared culture of Europe and Russia in it's importance as the best example of science in usable form. It was Mendeleev that used his spreadsheet, today's word but an unfamiliar one to his time, based on the atomic sizes and proton counts, the basis of chemical reactions, to predict how newer atoms would behave. Imagine if you had to explain and understand the basic tenets of chemistry without having a universal Rosetta stone for all chemical properties and their implications; how to divide chemicals into families of similar compositions and behaviours. It allows one to create a new element and insert them, reliably into the larger database of chemicals with predictions and rationales. As a work of science knowledge, a cross reference method - placing the elements with the specific information for each and relative information between each, it made a powerful way to solve the problem: and the first problem was realizing how important those variables were in relation. Unmistakable when presented in the proper format.

    If I could describe the Periodic Table of Elements in computer terms, it's like having a switch case to choose one of a number of functions to accurately predict the variables and how they react. It had missing elements in the matrix that allowed for prediction based on proton count how a missing element would behave. And true to form, the filled in blanks acted as prediction. In a way, that's what software does: it takes one person's model of what something should add to, look like, compare with, and it places that knowledge in those formats that make it graspable as James Doohan 's missing middle finger.

    The second useable knowledge format that drove innovation is the old mechanical device plate books from the 18th - 19th Century. As an exposition of simple, proven, mechanical armatures, force transmission, pulleys, belts and other crafted mechanical devices that would predict how a machine installing these elements would behave. Imagine trying to spend your time explaining to people that have very little reading comprehension, and almost as little math, how to understand the math of friction, stiction, three-dimensional moment arms and so on. And, when it comes to efficiency, years in a high school classroom or college sophomore drunken stupors are obviated by a simple craft made from the plates that describe in as much detail as needed where one must cut material and where one must fill material ( constructive solid geometry) to create an object like a cog . People that are good at and happy to work with their hands will find a mechanical plate book easier to understand and easier to copy than a textbook full of math. The means of medium is quality from the perspective of the consumer. The number of people that could reproduce mechanical mechanisms ²

    that work in real time exploded.

    Mechanical drawing plate books were like 2-dimensional math functions that constructed a mechanical object set meant to interlock, and allowed the human to play with them, push and pull and witness how much force they resisted or how little force it took to move across each other. Add oil and felt, one for sliding viscous friction reduction and one to deaden motions and diffuse them, and one allows simple folk to make reliable devices. Two dimensional drawings, a set of tools, materials, oil, and felt is all that's required. It's modifiable (make changes/improvements), reproducible (make many copies), and expandable (extend the range of applications). Think about it, you use wood for simple mechanical actions that don't require large forces, you use soft metals like tin for larger forces, and you use hardened steel for forces in the kilo-N Newton range. The mechanical objects are all scaled duplicates. That makes a tremendous range of mechanical devices in the hands of anyone.

    The third exemplar of ideas in a useable form is the Schaum's Mathematical Handbook , mainly written by a small team of mathematicians for the Schaum Publishing House . This book allows people to use math formulas, charts, and mathematical nomenclature that they would otherwise couldn't or wouldn't have the exposure, education, nor tutorship and supervision, to apply the foundational mathematics to derive the simplified mathematical formulae for use in many similar equations. While it's aimed at college students, it allow anyone to substitute the equations and work out the answers for themselves. It's like the Magician's book left in the hands of the Magician's Apprentice . It's accessible to all, and by working the equations one can teach himself, herself, themself what the equations do.

    I must point out that this comparable wasn't on the list until I had to find some old book and paper citations, but Google's Scholar , a search engine aimed as an academic- , patent- , documentation- , and case law- information aggregator that makes the process of finding someone else's reference citations, going back decades and even centuries quickly, easily is a definite best use of ideas comparable; it is a quantum leap better than the old days where one would have to type them all by hand. I use BiBTeX , and this has to be the easiest I've had it in decades copying over .bib references for my bibliographies . There are thousands of man years sunk into the purpose of accurately and honestly reporting where we stole our ideas from, or in other words, our Standing on the Shoulders of Giants to an academic standard. I won't claim my references are the best, but they exist. Just look at some old documents for the difference in the ubiquity and quality of references. When we get to the last few entries written per year for each new book and paper, we as a society have climbed a real mountain of academic reuse and fairness to others. At least in this regard, Google is doing not-evil.

    The fifth and final is the most logical one for the acceptance as a work in progress, one that needs no further introduction, one that adapts as new kinds of traffic goes on it and can be relied upon to have more use and faster speeds in the future. It's the internet , a once ARPA (ARPANet ) and DARPA project (DARPANet ), open sourced for the world to animate. It is both a theory of itself and a working copy for anyone that can observe, take notes, collaborate, implement, design, monetize, and live within. It would be hard to dispute the massive importance of the internet to the world today. While there may be Seven Wonders of the World sitting on the Earth's surface, more people gaze at their phones, consistently.

    Every example here proves two basic things: one, that people opt to use information in formats that make it easier to apply, and two, of the many ways that one could present that information there are seldom few that survive the test of time. The ones that do master the duality of an easy need that's needed easily.

    This sets two very important, intertwined objectives for software reuse: make it present information in a preferable way, and never lose that preferred way, even if that way changes, to avoid discardment by humanity. Many great ideas litter the dustbin of history. It seems the common thread is ease of use.

    Simplicity wins, it always wins

    You will see many takes on the problem of complexity and more complex systems, taken on in many variant arguments within this book and why it seems to make things harder. Here's a unique theory by Dr. John F. Sowa. You could search forever amongst the detritus of half-takes and musings. I will point at two.

    There was a handwringing argument about why worse is better as an explanation of why LISP was doomed; when it comes to software & hardware standards, but this was debunked soundly as a strawman made without straw. Another, better realization was made by mathematician John Sowa in that there seems to be an uncanny correlation between the

    Enjoying the preview?
    Page 1 of 1