| Register | FAQ | Calendar | Search | Today's Posts | Mark Forums Read |
|
#1
| |||
| |||
| Hi All, A software process is a technical and management framework established for systematically applying tools, methods, people, and governance to a software engineering activity. We note that: * "Process" is a recursively-defined concept, e.g., larger processes can be comprised of smaller processes * Processes need not occur "all at once." Depending on the circumstances, for example, a process can take place iteratively, and deliver its outputs incrementally. * Changing one process in a process architecture can cause undesirable side effects in other processes within the same process architecture (A good process architect knows knows how to avoid most of these situations.) A well-defined software process: * helps individuals, projects, and organizations prepare for likely eventualities on projects/processes that incorporate that process * provides a mechanism for organized learning As projects and organizations improve their methods for handling key tasks, these improvements can be incorporated into the repertoires of scenarios available to the rest of the organization. This process definition makes it easier for each new project to build on the experiences of its predecessors, and it also protects against the dangers of ill-prepared crisis reactions. Defined software processes are needed to provide organizations with a consistent framework for performing their work and improving the way they do it. An overall framework for modeling simplifies the task of producing process models, permits them to be tailored to individual needs, and facilitates process evolution. A software process architecture can be defined as "a framework within which project-specific software processes are defiined. It establishes the structure, standards, and relationships of the various process elements. Within such an architectural framework, it is possible to define many specific processes. A software process model is then one specific embodiment of such a software process architecture." While software process models may be constructed at any appropriate level of abstraction, the process architecture must provide the elements, standards, and structural framework for refinement to any desired level of detail. A software process architect is an individual charged with such activities as: * Defining software process architectures * Assessing and improving the quality of process architectures * Modifying and or tailoring software process architectures * Configuration managing process architectures, and their components * Gathering metrics relating to processes, and interactions and interrelationships among processes and their related components A software process architect is someone who: * Has a moderate to in-depth understanding of each of a relatively large number of different software processes (e.g., requirements analysis, design, quality assurance, testing, risk aversion, maintenance, and metrics gathering). This understanding usually encompasses roles, steps, deliverables, heuristics, metrics, and governance, for each of the processes. * For each process, has an above average understanding of two or more varieties of that process (e.g., structured design, object- oriented design, and data-driven design) * Has an in-depth understanding of the metrics, common governance practices, localization strategies,tailoring approaches, and inter-process integration strategies. * Understands the undesirable side-effects (e.g., ripple effects, and snowball effects) that can occur as a result of sloppy process integration. * Understands different life cycle strategies, e.g., iterative and incremental, spiral, sequential, and evolutionary. * Understands the interplay between product, product line, and process architectures. * Can pragmatically map theoretical and empirical concepts into real-world situations. * Has excellent analytical and problem-solving skills. * Has excellent oral and written communication skills * Has excellent teaching/training skills * Is adept at "lateral thinking" and other cognitive resource techniques * Values systematic, repeatable, and quantifiable approaches over haphazard, ad hoc, "magic" approaches. * Values analytical and problem-solving approaches that are teachable and transferable. * Prefers to "stand on the shoulders of giants," as opposed to "continually re-inventing the wheel," (A good software process architect is skilled in software reusability concepts, e.g., commercial off-the-shelf software). * Knows how to recognize and avoid "paving the cow path." Examples of situations in which you need a software process architect include, for example: * Your organization wants to knowingly and measurably improve their software engineering processes,, with the deliberate intention of increasing profitability. * Your organization has a keen interest in merging several of its individual products into coherent product lines. * You are looking for ways to achieve a higher and more uniform level of quality throughout your products and services, while at the same time distributing technical knowledge more uniformly among your technical staff. References are available upon request. If you have any questions, suggestions, or comments, please feel free to contact me. (1-301-378-0572, 1- 252-268-6499, or via e-mail at ed.berard@gmail.com) Sincerely, Edward V. Berard |
![]() |
| Thread Tools | |
| Display Modes | |
In an effort to better serve ads to our visitors, cookies are used on objectmix.com. For more information, check out our Privacy Policy.