4. Maintenance Problems
1. Team has changed
Original developers not available
New developers don’t understand the code
Rewriting easier than documenting and fixing old code
2. Software has to be upgraded
Software is not compatible; bit-rot has set in
5. What is bit-rot?
Software rot, also known as code rot or software
erosion or software decay or software entropy, is a
type of bit rot. It describes the perceived slow
deterioration of software over time that will
eventually lead to it becoming faulty, unusable, or
otherwise in need of maintenance. This is not a
physical phenomenon: the software does not
actually decay, but rather suffers from a lack of
being updated with respect to the changing
environment in which it resides. —Wikipedia
8. “Functionality is an asset, but
code is a liability. I will say this
until you like it.” —Ted Dziuba
9. Pattern: Custom Fork
You want a website Your custom feature is a
popular request, so the
You found a CMS that has
CMS also adds it and
most of the wanted features
releases an update
Developer says he can add
Your custom version
the additional features you
implemented it differently,
want, so you commission it
so you can’t upgrade: you
Developer hands you code will lose data if you do
and moves on
10. What you should do
Never implement a custom Make it open source and
feature for yourself; the encourage adoption by
maintenance is also yours others; open source is
useless without adoption
When you get some
software written, give the Open source is a
developer an incentive to mechanism for distributing
maintain it without you the cost of maintenance to a
having to pay for it large number of others
Let the developer own it This is hard
11. It’s not just you
Software developers reinvent the wheel all the time, only to
regret it later; the itch to reinvent never goes away
“The shock of recognition came to me when I was sitting on
the bus and reading the RFC for NFS, intending to write an
NFS server on top of the ZODB so we could use grep and
CVS. Suddenly I sat up and thought ‘I have an object
database on top of a filesystem, and now I want to emulate a
filesystem on top of it. What am I doing? Why not just use a
filesystem in the first place?’” —A. M. Kuchling, April 2001
12. Software Upgrades
All major software systems evolve coping mechanisms
Windows DLL hell in the 3.x and Windows 95 era
Ubuntu 6-month upgrades
Preferences for any software application
Web app customization: themes, plugins, standard config
13. File Formats
PDF and HTML are stable;
files from 10 years ago still
open
PDF is not re-flowable;
suitable only for archiving
paper layouts
Archivability is still a
concern
14. Raw HTML is tedious
<h3>
What is HTML5?
</h3>
<p>
The term HTML5 has come to represent not just the new
version of hypertext markup language, but a suite of related
technologies and proposed standards. These include:
</p>
<ul>
<li>CSS3, Geo-location, Web Sockets, Canvas, Client Storage,
Audio and Video.</li>
<li>Rich Internet Apps enabled by Advanced JavaScript
Engines and Mobile Browsers.</li>
</ul>
15. Plain text markup
Markdown
### What is HTML5
The term HTML5 has come to represent not just the new
version of hypertext markup language, but a suite of
related technologies and proposed standards. These
include:
* CSS3, Geo-location, Web Sockets, Canvas, Client
Storage, Audio and Video.
* Rich Internet Apps enabled by Advanced JavaScript
Engines and Mobilewsers.
16. Plain text markup
MediaWiki
=== What is HTML5 ===
The term HTML5 has come to represent not just the new
version of hypertext markup language, but a suite of
related technologies and proposed standards. These
include:
* CSS3, Geo-location, Web Sockets, Canvas, Client
Storage, Audio and Video.
* Rich Internet Apps enabled by Advanced JavaScript
Engines and Mobilewsers.
17. Plain text markup
BBCode Each of these converts
easily readable plain text
Markdown
into HTML
MediaWiki
The original plain text
Textile should be archivable, but
each convertor is also
WikiCreole
subject to bit-rot
ReStructuredText
There’s safety in numbers;
And many more... how many use them?
18. Published text: ePub
Reflowable content; no fixed
paper size
Single archive file contains
everything
The most promising archive
format
Two incompatible sub-formats:
XHTML and DTBook
Developers don&#x2019;t care about sustainability. It shows all the time.\nWe&#x2019;re going to focus on the second.\n
\n
Nobody works solo anymore. All software depends on some other software, maintained by someone else.\n
The cost of forking is high: maintenance is yours alone\n
\n
\n
\n
ZODB is the database of Plone. AMK highlighted the problem in 2001, but as late as 2010 we use Plone and then suffer database upgrade problems.\n
\n
HTML has too much gunk in it: text, markup, presentation, scripts, external resources, external links. Not all of it will survive forever. Some of it will (a) disappear or (b) become incompatible (mostly JS).\n
WYSIWYG editors produce garbage, so plain text markup formats are preferred.\n
\n
\n
ReST is incredibly powerful, but the only parser implementation is in Python, unlike Markdown which has an implementation in every major language.\n
The reflowable feature is a problem for fixed-layout content such as comics\n