A former community discussing the business of software, from the smallest shareware operation to Microsoft. A part of Joel on Software.
We're closed, folks!
Doug Nebeker ("Doug")
I am working on a feature this week i intend to use in 2 projects.
I had the thought that maybe 95% of the code that i have ever written was not made in a way that is super easy to re-use in the next project. And then i end up reusing a lot of the same things in the next project. i often re-use things from former projects with copy paste modify customize instead of include library and extend
This number fascinates me because its seems like so much waste
Please post your estimated nunber on what percent is reusable and how you try and minimize waste.
These days I had thoughts in a close direction. But in my case I realized that 95% of the code that I have written in the past 15 years is gone (deleted, dead, or not running). In this statement there is code done by only me and by 100 men divisions working for 10 years.
This is much more frightening I think.
Probably 50% is reusABLE, but less than 1% is actually reusED. Second time around, there is always more information, a better idea, a new style, a new tool, a new twist.
And, most important of all, this informs everything we do, almost never are we willing to risk screwing up existing functionality by modifying shared code.
I think outside of major products like OS's and databases and such, widely shared code this is like world peace; we will talk about it forever, but never really achieve it.
I use my GUI library written in c++/WinAPI and rest of my projects was written with the GUI library. So, 50% of code is reusable.
Library is not the best but for my purposes it gives results (the only one thing should be rewritten - drawing "engine" - it is too slow using GDI windows embedded into other GDI windows and drawing them)
NorthNotch Software Ltd.
Friday, April 15, 2016
This is a hard question to answer.
For example, I have three products that were all designed to use the same core functionality. With that in mind, I'd guess I have 70% reuse among the products.
But if I started a brand new project in a completely separate problem domain, how much would I bring with me? 5%? Hard to say.
5% for some visual and other components, code libraries. The rest (About 95%) is not reusable. I'm starting a new project, once again something related to image processing and I intend to make the processing/recognition part reusable, maybe even a separate product. Software components sell, there is market for them.
I write enterprise applications using PHP. I do this using a framework which I also designed and developed. This is based on a combination of the 3 Tier Architecture and the MVC design pattern.
All my Model/Business Layer components inherit from a large abstract class, which makes all the code in the abstract class totally reusable.
I have a separate component in the Data Access layer for each supported DBMS. Each user transactions uses one of these components to communicate with the database.
I have a library of 40 reusable Page Controllers, one for each of my Transaction patterns. Each user transaction uses one of these shared Controllers.
I have one standard View component which produces HTML from an XML document and an XSL stylesheet. I have a second View component for generating PDF documents, and a third for CSV output.
All this shared code provides default behaviour in every user transaction, so the only code I have to write is when I want to alter the default behaviour with customisations.
My main application has over 2,500 user transactions, and it is only the custom code which is not reusable, and this represents only 5-10% of the code which is executed in every user transaction.
Tuesday, April 19, 2016
This topic is archived. No further replies will be accepted.Other recent topics
Powered by FogBugz