- Independent Evaluation:
I can provide fresh perspective.
My expertise can supplement or
complement in-house expertise.
I can provide alternative or new
ways of organizing projects, software architectures,
I can also provide
an impartial critique of current projects and plans.
I can confirm problems or solutions
and reduce the risk of going in wrong directions.
These benefits may be difficult to achieve in-house.
- Domain Engineering:
I can lead a team of people to produce
a domain analysis for a family of products or components.
The domain analysis will typically generate a common
understanding of the domain, the commonalities and variabilities,
and a domain engineeering process for efficiently producing
applications within the desired domain.
I can conduct reviews or audits of software projects including
analyzing the software architecture and design, software development
process, language design, specifications, or domain engineering efforts.
Reviews/audits can be small or large,
solo or team efforts and can be conducted during any
phase of the software lifecycle.
- Technical Advice:
I can be on-call to provide answers, advice, alternatives, or
other assistance as needed by development teams.
Such consulting includes on-site
visits, telephone conversations, and email or written correspondence.
- Customized Training on the Job:
I can provide on-the-spot just-in-time training
for development teams as they go through processes
such as requirements analysis, system/software architecture,
domain engineering, and software development.
Also see my contracting services
or instruction services.