It is important to study enough components to create a generalized class. To few, and the generalized class could be biased towards one implementation. Once the background research has been completed, we begin the process of creating the software architecture. This is the 'artisitc' step of the process. A designer may start with a strawman to be further refined, or some other method based on experience.
Design reviews can play an important role in the design process.
This also helps to educate other members as in the structure of the software architecture. Once the architecture has been stablized a protype should be developed. Once the prototype is complete, the changes should be considered very carefully. The updates should be released as discrete updates. Wrapper technology Object wrapping is a practice for implementing a software architecture given pre-existing components.