Reuse, Buy or Build

Мудрая стратегия, сформулированная в одном предложении:

Re-Use before Buy, Buy before Build, Build for Re-Use

Возьмите паузу, и, не читая дальше, хотя бы минуту попытайтесь прочувствовать глубину мысли. Поступаем ли мы так? Экономим ли мы свое время, время своих коллег, деньги заказчика?..

Я не всегда...

А мысль применима, как мне кажется, в любом деле, где надо что-то создавать (архитектура, код, требования, документы, тест-кейсы, компоненты, решения, проекты...).

Чтобы никто не путался в терминах:

Here are the Oxford English Dictionary definitions of “reuse,” “buy,” and “build”:

Reuse—“The action of using something again.” In architectural terms, reuse can mean different things to different architects.

For example, it could mean reusing an entire existing IT solution by creating another instance of it to satisfy some other business requirements. Alternatively, it could mean that a number of solutions use the same functionality that is contained within another solution to satisfy parts or all of their requirements.

Buy—“Obtain in exchange for payment.” In architectural terms, the buying of packages has been commonplace for many years. For the purposes of this article, buyrefers to the procurement of a software component or service.

Build—“Construct by putting parts or materials together.” For the purposes of this article,build within the architecture community could be misleading to some. Therefore, build in this article relates to the development of a bespoke solution by using software-development tools and methodologies.

А если кому-то стала интересна позиция евангелистов из Микрософта на эту тему, то можно почитать их мысли в статье Arhitecture Journal "Reuse, Buy, or Build: Components and Services".

This entry was posted in анализ, бизнес, программирование and tagged , , , , . Bookmark the permalink.

One Response to Reuse, Buy or Build

  1. Yuri Vedenin says:

    Еще мне понравилось отношение одной фирмы (CC Intelligent Solutions, Inc.) к этим 3 действиям. Мне кажется, что это должно быть стилем мышления любой Agile команды... да и не Agile тоже...

    "Developing new code from scratch is time-consuming, can require unpredictable levels of time and effort, and always carries technical and quality risk. When addressing a requirement, we consider re-using existing code or components or buying an off-the-shelf tool or component that satisfies the requirement. Only if these options cannot satisfy the requirements and constraints of the project should new code be written. Even if new code is written, existing code should be re-used (by extension or refactoring, not by copying-and-pasting) as much as practical. "

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>