As we continue to make advances in space exploration, we also continue to leave behind more space junk that makes continued advances more perilous.
Computer technology continues to advance at a rapid pace, and in particular the productivity advances in creating and maintaining new software continue to advance as well. However, computer technology and software development also incurs its own forms of 'space junk' that act as impediments to advances and productivity as well.
The 80% Rule.
In any software project the first 80% of progress is relatively easy, while the last 20% becomes exponentially harder to 'finish properly' - in short, no software project ever gets finished properly. But what does 'finished properly' mean? In this context it means that there is nothing extra for the end user to learn or master when using the software application because there is nothing left for the software developers to do to improve the software any further.
The basic principle at work here is a trade-off between time the software developers have to invest in making the product better or more finished, and the time the end users have to spend making up for the time the software developers did not spend.
For example: let's say a product is 70% done, but that the development team have not created any user documentation. For the most part the user interface is well designed and most users in most circumstances have no trouble with the product. However, for those users who have to do something a little bit different there is no guidance on how they can do it, let alone if they can do it. Consequently they have to resort to online searches with Google, typically leading to customer support forums where they can ask questions.
Let's try to put this in more mathematical terms. Say a developer saves 40 hours by not documenting how to do some task. Also, 20% of users cannot figure out how to do the task that was not documented, and have to spend 1 hour of their own time researching how to do it. If there are 200 users of the product then this is a fair trade off as the developer saved 40 hours, and collectively the user base spent 40 hours. However if the user base is 2000, then they would collectively spend 400 hours. If you chart this relationship it looks something like
Now try and let the simple economics of this sink in. If there are 200 million users, then they will collectively spend 4 million hours of time in order to make up for the 40 hours the developer saved. Now lets say that the developer gets paid $100/hour and the end users get paid $10/hour, this means that while the developer saves four thousand dollars, collectively the end users will have to spend fourty million dollars extra that they would not have had to spend had the developer invested that four thousand dollars better.
Computer technology continues to advance at a rapid pace, and in particular the productivity advances in creating and maintaining new software continue to advance as well. However, computer technology and software development also incurs its own forms of 'space junk' that act as impediments to advances and productivity as well.
The 80% Rule.
In any software project the first 80% of progress is relatively easy, while the last 20% becomes exponentially harder to 'finish properly' - in short, no software project ever gets finished properly. But what does 'finished properly' mean? In this context it means that there is nothing extra for the end user to learn or master when using the software application because there is nothing left for the software developers to do to improve the software any further.
The basic principle at work here is a trade-off between time the software developers have to invest in making the product better or more finished, and the time the end users have to spend making up for the time the software developers did not spend.
For example: let's say a product is 70% done, but that the development team have not created any user documentation. For the most part the user interface is well designed and most users in most circumstances have no trouble with the product. However, for those users who have to do something a little bit different there is no guidance on how they can do it, let alone if they can do it. Consequently they have to resort to online searches with Google, typically leading to customer support forums where they can ask questions.
Let's try to put this in more mathematical terms. Say a developer saves 40 hours by not documenting how to do some task. Also, 20% of users cannot figure out how to do the task that was not documented, and have to spend 1 hour of their own time researching how to do it. If there are 200 users of the product then this is a fair trade off as the developer saved 40 hours, and collectively the user base spent 40 hours. However if the user base is 2000, then they would collectively spend 400 hours. If you chart this relationship it looks something like
| 200 | 40 |
| 2,000 | 400 |
| 20,000 | 4,000 |
| 200,000 | 40,000 |
| 2,000,000 | 400,000 |
| 20,000,000 | 4,000,000 |
| 200,000,000 | 4,0000,000 |
Now try and let the simple economics of this sink in. If there are 200 million users, then they will collectively spend 4 million hours of time in order to make up for the 40 hours the developer saved. Now lets say that the developer gets paid $100/hour and the end users get paid $10/hour, this means that while the developer saves four thousand dollars, collectively the end users will have to spend fourty million dollars extra that they would not have had to spend had the developer invested that four thousand dollars better.