Software Reuse
As a follow up to my last post, I decided to post this collection of quotes on software reuse from some industry luminaries:
Planned? Top-down? Upfront? In this age of “agile“, these words border on blasphemy.
Categories: technical
linkedin, software development, software reuse
It’s a popular myth that agile and top-down architecture strategy are mutually exclusive:
http://charliealfred.wordpress.com/scrum-and-architecture-partners-or-adversaries/
SCRUM is like driving – it’s a process for getting from one place to another. Architecture strategy is like a GPS. It comes in extremely handy if you are driving in unfamiliar territory and may need to take a detour because of unexpected traffic or construction.
Thanks once again for stoppin’ by Charlie. Scrum’s a framework, not a process. That’s part of the issue with “agile” stuff. It’s so mushy that no one really knows what it means and it spawns arguments galore within orgs and within the industry. I honestly think nothing is really mutually exclusive. Hybrids can be developed out of almost any two seemingly opposing parts.
From my experience, this is absolutely true. I was never able to get a commitment to reuse from management at my previous job, nor even agreement from my co-workers that it was possible.
Thanks for sharing your direct experience Mark.
Intra-product reuse should be fairly easy to pull of in that you should have more visibility into what is affected by change and the means to test the effect. The ability to correct failed experiments exists. In this instance, I’d disagree with Bosch.
Once components start crossing the product boundary, flexibility drastically decreases. A breaking change to shared component creates much more havoc. The only way to manage that risk is via governance and planning.
As Charlie’s article pointed out, no Big Design Up Front is not the same as no design up front. Tailoring the level of rigor to the context at hand seems much more agile than abandoning all control and hoping for the best.
Thanks for pitching in Gene.
I have always thought buying finished software with some versions behind it was the best form of reuse, i.e. don’t reuse code, reuse hardened binaries/libraries whenever possible.
Thanks Phillipe!
A good document covering the topic of software reuse (different combined techniques in Java):