Friday June 03, 2005 Sometimes a picture is worth more than a page of blog text. This diagram illustrates my prior posting about basic architectural definitions and their relationships.
| |
| Legend (Click on image to see a larger version) | |
|---|---|
| Workspaces | Sun uses Teamware to manage much of its source code. The Teamware term Workspace is used to describe a copy of a source tree that contains its version control history; Teamware can manage the relationships and content flow between workspaces. |
| I-Teams | Implementation Teams (aka developers) |
| RE | Release Engineering |
| Realizations | Instances of a product in specific forms |
| PLC Phase 3 | The first three phases of Sun's Product Life Cycle are "Propose a Concept", "Commit to a Plan" and "Develop a Product". The reference indicates that (duh!) product development happens in the development phase. Yes, there are some people that need to be told the obvious .
|
Thursday June 02, 2005 Alan Coopersmith writes about making a simple change to Solaris that has a simple architectural impact. This raises the question of how are changes classified?
Obviously, we want to be proactive and intentional about making changes to our products, since the alternative of being suprised by unexpected changes usually means upset customers and broken products.
The development processes we use tries to formalize this intent by asking two basic questions about every proposed change:
The former is primarily a business decision, and the latter, a technical one.
Many times, the want question is obvious - Priority 1 bugs are more "wanted" than Priority 5 ones, competitive pressures may demand certain new features, etc. I won't spend much time discussing this topic, as I want to focus on the technical path.
Architectural Review Committees (ARCs) are made up of senior engineers and other domain experts, and are responsible for the technical review and approval of these changes. The first step in that review process is to determine what kind of review a particular proposal requires:
Most bugfixes qualify for this level of review.
The documentation provided in the bug report (evaluation, suggested fix...) combined with the usual peer review is deemed to provide sufficient technical oversight.
Projects suitable for a fast-track review generally apply "common practice" in a frequently-performed change or addition.
The fast-track process is primarily handled as email discussions and can take as little as a week's time to complete.
The intent is that 80% or more of the changes being made will be either self reviewed or fast tracked
The full ARC review process involves a combination of email, detailed project specifications, and formal meetings. The time required varies considerably, but teams should schedule reviews early - an inception review by mid-prototype stage, with commitment reviews between alpha and beta in order to allow time to incorporate any ARC required changes before integration.
Technorati Tag: OpenSolaris
Technorati Tag: Solaris
( Jun 02 2005, 04:10:57 PM PDT )
Permalink
Comments [0]
Wednesday June 01, 2005 Products are made up of one or more components, which are, in turn, made up of one or more elements. Elements and components evolve over time as Projects are initiated to change them.
By watching these changes as they happen, we have a chance to be proactive and manage risk:
A collection of elements that are always delivered together as a self-consistant entity. Components are reusable, sharable things that form the basis for the complicated systems platforms that we deliver. Components are combined to form Releases.
(Think "workspace" or "CVS repository" when you think of components)
Components let us take advantage of independent evolution, decoupling, modularity and reuse - in a very real sense, they are the building blocks that we use to build solutions for our customers.
Changes are made to elements of components. At the beginning, the very first change request is to create a component (i.e., create a new product or feature). However, once a component exists, it spends the rest of its existance being changed. Bugfixes, code restructuring, performance improvements, and the addition of new elements/features all impact the evolution of a component.
Components do not usually live in isolation - they usually depend on other components, or they do something useful so other components come to depend on them. In that sense, components are usually combined with other components into product releases.
This dependency introduces a risk - the risk that something you depend upon might change in the future and break your component. Or, more likely, you may wish to do something to your component that might break components that depend on yours. This risk management is the focus of Sun's development process.And it ought to be remembered that there is nothing more difficult to take in hand, more perilous to conduct, or more uncertain in its success, than to take the lead in the introduction of a new order of things. Because the innovator has for enemies all those who have done well under the old conditions, and lukewarm defenders in those who may do well under the new. This coolness arises partly from fear of the opponents, who have the laws on their side, and partly from the incredulity of men, who do not readily believe in new things until they have had a long experience of them.
Thus, it happens that wheneever those who are hostile have the opportunity to attack they do it like partisans, whilst the others defend lukewarmly...
The Prince, Chapter 6 by Niccolo Machiavelli
Sun's involvement in community development projects such as OpenSolaris, Gnome and Mozilla is all about change - both process changes and code changes.
In the spirit of trying to avoid the above fate, I will be using this space to present and discuss some of the processes that Sun uses to identify and manage such change.
Technorati Tag: OpenSolarisI've been at Sun since 1989, and have been involved in many different projects - from porting SYSV to x386 systems and involvement with the early BSD/Libux efforts, bringup of Solaris 2.0 and porting the X/NeWS Window System and the OpenLook Desktop, to database clusters, systems management, yadda yadda yadda :-)
For the last 5 years or so, I've been the keeper of Sun's proactive architectural processes and the tools used by its various review committees.
Today's Page Hits: 34