The TGP Architecture
The TgpMethodology provides an architecture of collaboration with BusinessProfessionals (called also Technical Business Analysts TBAs). The architecture is based on ObjectOrientedFramework principles. The TGP VisualSharedModel aims to respond to dynamic changes in some areas of the software - creating flexible zones that are easy to adjust. Furthermore, the adjustments should be executed by businessprofessional who are not programmers; hence, the collaboration using the TGP VisualSharedModel takes place in the declarative area of the software. The businessprofessionals operates in the declarative area which is a confined and protected environment. The way TGP architecture separates the modular declarative part from the imperative part of the software is presented in the following figure:
The TgpProcess describes how to start and keep the IncrementalDevelopment process going. In order to adapt the software gently to the dynamics of the business domain, the flexible zones need to be built in a modular way. The TGP VisualSharedModel has three layers; the basic layer is the "Types". Types are the definitions of the abstractions and interfaces, the other two layers are generic classes/ProfileTemplates and Profiles. The basic layers of the TGP shared model and the different responsibilities of BusinessProfessionals and developers are presented in the following figure:
TGP Layers
Types are categories for the business professional and extension interfaces for the developer. Types generate the flexibility dimensions; they constitute a plug-in environment that makes extensions inexpensive. Types are determined by the BusinessProfessionals' interaction with developers. New perspectives may lead to an expensive modification of the Types. Example from interior design software for types can be: table, chair, certain, carpet
Generic Classes are ProfileTemplates (PTs) for the professional experts. The PTs serves as forms for generating new features and new functionalities. PTs concretize the existing types and use other types as parameters. PTs are determined by the BusinessProfessionals' interaction with developers as well. Example from interior design software for a PT of table can be: dining table, desk, coffee table Each of these PTs has the following properties: basic functionality (as indicated in their names) and rough size (large medium small).
Profiles are sets of concrete configuration for the business professionals. The profiles have an actual meaning in the business domain. In a good model most of the requirements are mapped by the BusinessProfessionals into profiles. Profiles are used to define both set of values and relationships to other profiles that together define the desired functionality. For the developers profiles serve as concrete classes, however, in most cases they are transparent to them. An example from interior design software for a profile will be furniture defined in the catalog, such as CT356-G. CT356-G is a coffee table with specific properties determined in the profile: rectangle shape, 120cm length, 70cm width, 80cm height, made of wood and with green color. Yet, profiles are classes rather than instances in the database. Instances may have other properties set by the end user, in this case, the position the table, its price, relate it to other furniture, etc. Profile may resemble knowledge objects, or configuration objects in other implementations.
In a sense, a TGP model is a map of the anticipated and actual flexible areas of the software. The basic structure of a TGP shared model is presented in the following figure:
-- ShaiBenYehuda and OriInbar
Discussion
In a multi team projects we suggest another role "Business Strategists", who are familiar with the business domain like BusinessProfessionals, however, they have modeling skills. The Business Strategists (see ImplementingTgp). -- OriInbar
(moved here from FlexibilityZonesArchitecture)
Various questions arise immediately. For example -
OK, this, and pretty much all the other TGP pages, feel to me like they're full of marketing hype and b******t and very, very light on actual content. What are you selling?
You are right that the pages describing the methodology are written in some marketing attitude. We will be delighted to refactor together with the community to make the methodology better. However, at the moment we are not selling anything. Moreover, the TGP is more of a strategy than a set of tactics. The content is not concrete in the sense that in each implantation the tactics may vary. -- OriInbar
''ArtwareSoft is a consulting company. We help existing projects to refactor, and help start-ups to design. The Tgp WalledGarden started as a direct copy of our white papers, and this is the reason it looks like white papers. I don't like it personally, but I guess it was the easiest way to put things up, and worry about removing all the buzzwords later.
The reason we put the Tgp papers here at all was to discuss it with the smartest people in the business. Methodologies and ideas are free, and like free software, they improve when they are shared. We want opinions and criticism; to know if other people use similar concepts; to clarify what it is actually good for and where it should be applied; to find good definitions of the concepts. We don't sell it, and I don't believe we ever will be able to.
There is some (very simple) technology involved, and it was implemented for each of the projects that implemented it separately, but along similar lines. ArtwareSoft doesn't own any of these implementations, but we intend to write one as an open source project, or maybe two (one in Java and one in C++).
We use the Tgp methodology since we believe it is the best for our clients, probably because we are still very excited about it - we invented it, it solves many problems, and everyone who ever used it loves it. -- Moddy Te'eni ''
TgpMethodology AgileProcesses AgileSoftwareDevelopment CategoryAgileMethodology OrganicTesting TgpProcess