Hi all -
One of the interesting tasks on my plate this year is to devise a document that
reflects a strategy around "Buy, Borrow, or Build" as relates to technology
approaches here at the University of Arizona Libraries. Below is the text of
this "reference architecture", and I am particularly interested to hear
comments from the community regarding this document.
Some context: We are working hard here at the UA Libraries to concentrate our
finite development resources are true gap areas - i.e. we want to not recreate
the wheel, and due to the current budget environment, we truly need to be
efficient in how we deploy our staff who perform development work. At the same
time, we want to move forward in truly innovative areas. The approach in this
document is to not get caught up on the terms "Buy", "Borrow", and "Build", but
to understand the reasoning behind looking at these approaches and describing
how the group in our library will think about technology decisions with the 3
B's being an important consideration.
Here's the reference architecture:
=======================================
REFERENCE ARCHITECTURE DOCUMENT
Buy, Borrow, Build (B3)
Last Revision: 5/06/2010
Summary
This document describes the University of Arizona Libraries’ Technology
Architecture Council’s approach when considering technology solutions that look
to Buy, Borrow, or Build a technology solution.
Context
The UAL must heavily weigh cost and sustainability in regards to its overall
technology strategy. Resources devoted to technology and technology support
are limited and must be allocated effectively and efficiently; the more
resource we allocate to one activity directly impacts the resource we have
available for other prioritized activities. It should also be noted that
certain types of resources, such as staff resources, have certain limitations
that also need be taken into account. The UAL’s Technology Architecture Council
(TAC) must take into account all cost factors, regardless of type of cost (such
as staff time or money) in order for TAC to devise a strategy that is pragmatic
for the UAL to implement.
Reference Architecture - Buy, Borrow, or Build
There are three approaches generally considered with regard to technology
solutions: Whether to Buy a solution, to take a current existing solution and
enhance it with additional functions and features (this is called ‘Borrow’), or
to Build a solution from scratch.
A Buy approach is when an organization purchases, licenses, or otherwise
acquires a ready-made solution that requires no additional development of new
features or functions in order for the solution to be deployed to meet the
needs of the UAL. A Buy still may require configuration and integration with
other systems (such as single sign-on). (It should be noted that Open Source
solutions can be considered Buys in regards to approach, if they do not require
any additional features or functions beyond what they provide out-of-the-box)
A Borrow approach is when an organization purchases, licenses, or otherwise
acquires a ready-made solution, but that solution requires some amount of
additional development to add features or functions that are essential to meet
the needs of the service/product that the solution is intended to support.
A Build approach is when an organization decides to create (often develop) the
needed technology solution.
Regardless of approach, the UAL needs to understand the Total Cost of Ownership
(TCO) when considering technology solutions. For the approaches listed above,
the following are major factors in examining the TCO:
Buy:
• Initial purchase / license / set-up cost (including configuration and
integration)
• Ongoing support / licensing cost
• Cost of regular upgrades
• Cost of dedicated hardware (if appropriate)
• Ongoing technical staff support costs (i.e. application or system
administration)
• Exit costs (i.e. estimate of time / cost to migrate from this
solution when needed)
Borrow:
• Initial purchase / license / set-up cost (including configuration and
integration)
• Initial development costs
• Ongoing development costs
• Ongoing support / licensing cost
• Cost of regular upgrades, including cost to applying customizations
to newer versions of software
• Cost of dedicated hardware (if appropriate)
• Ongoing technical staff support costs (i.e. application or system
administration, bug-fixes for custom development, etc.)
• Exit costs (i.e. estimate of time / cost to migrate from this
solution when needed)
Build:
• Cost of initial development activities (i.e. cost to develop to 1st
release; includes time for related activities, such as documentation of code)
• Cost of ongoing development activities (for new features or functions
beyond 1st release)
• Cost of dedicated hardware or hosted server infrastructure
• Ongoing technical staff support costs (things like application or
system administration, bug-fixes, application security patches, etc.)
• Cost of developing user-support documentation
• Exit costs (i.e. estimate of time / cost to migrate from this
solution when needed)
In general, a Buy approach is easiest to determine TCO, while a Build approach
is the most difficult. Generally, there are more unknowns with a Build than
there are with a Buy. The more unknowns, the greater risk of inaccurate cost
estimates.
When a proposal is reviewed by TAC, TAC will consider what solutions are
available through each of the above approaches, and compare those options,
along with their associated costs, in order to decide which approach and
solution will best meet the needs of the UAL and the service(s) requesting
technology support.
As part of this process, TAC will also review the service’s functional
requirements, especially as relate to critical vs. desired elements; while
ideally all requirements would be met by a particular technology solution, in
practice functional requirements should reflect “must have” vs. “desired”, and
the TAC may need to follow-up with stakeholders to better understand the
impacts on a particular service if certain requirements are not able to be met
through a particular approach or solution.
========================================
-- jaf
------------------------------------------------------------
Jeremy Frumkin
Assistant Dean / Chief Technology Strategist
University of Arizona Libraries
+1 520.626.7296
[email protected]
------------------------------------------------------------
"Not everything that can be counted counts, and not everything that counts can
be counted."—Albert Einstein