Software Engineering Advisors
Embedded Systems Specialists

HOME

ABOUT US

ABOUT YOU

SERVICES

METHODS

RESOURCES

SEA LOGIN



 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


The SEA operating principles capture our corporate values, those intrinsically
valuable qualities that guide us in every interaction with customers and among
ourselves.

The
SEA application principles are a set of “first principles” that underlies how
we apply our expertise to a client engagement.  When faced with competing
alternatives for a solution, they guide us in choosing the alternative that best reflects
our corporate mission and our commitment to expand the role that good
engineering practices play in software development.

SEA Operating Principles

 • Commit to excellence.  Deliver more value than the customer expects
   and continually raise the bar.  Let passion drive, but wisdom guide.

 • Insist on integrity.  Demonstrate congruence between what you say and
   what you do.  Take responsibility.  Be an exemplar of professional behavior
   and company values.

 • Create authentic partnerships.  Base collaborations with clients on trust,
   mutual respect, shared values, and common goals.  Communicate openly,
   honestly, and directly.

 • Seek first to understand.  Inquire and elicit, don’t presume.  Clients know
   their business and their needs, but sometimes have trouble articulating them.
   Listen with an open mind; look for alternative perspectives.

 • Establish purpose before action.  Define the desired results, formulate
   strategy, create a plan, and think through the context before implementation.

 • Encourage risk-taking and treat failure right.  Promote ingenuity
   and resourcefulness.  Learn from mistakes (yours and others’).

 • Be diligent in all things.  Pay attention to the details as well as the big picture.

 • Know your limits and work to extend them a bit every day.  Actively pursue
   knowledge and cultivate wisdom.  Look for the learning opportunity in every
   experience.

SEA Application Principles

 • Know what you are doing and why.  Understand the business case and
   purpose behind product development initiatives.  Create a common vision
   and purpose to align the goals of all stakeholders.  Choose the right product
   missions for the business.  Leverage the core competencies.  Define the scope
   of the engineering effort for each product initiative appropriately to stay within
   the core competencies or to stretch them.

 • Adopt and maintain an engineering perspective.  Approach each product
   initiative with multiple engineering perspectives and drill down through layers
   of decreasing scope and increasing detail:

      • The systems engineering perspective is the big picture.  It covers all hardware,
        all software, all configurations, and all environmental contexts.  It distinguishes
        product lines, platforms, and product instances and looks at opportunities for
        design and component reuse.
      • The product engineering perspective focuses on the specific product to be
        built and its life cycle.
      • The project engineering perspective focuses on how the specific product
        is to be realized.
      • The software engineering perspective focuses on the software components
        that are engineered for the product (or product line).

   Each perspective requires one to look at all the aspects (requirements,
   architecture, configuration, integration, quality, economics, construction, formulation
   and resolution of issues, audits and reviews, decision-making and assessment, risk
   management, economics, etc.) but with a different scope in mind and applying
   known principles and proven practices appropriate to the level.

 • Get the fundamentals right.  Fundamentals are foundational.  A flaw
   in the foundation jeopardizes the entire product development structure.
   Improvements in the foundation contribute not only to existing product initiatives
   but every future initiative.  When the foundation is solid, innovation can flourish.
   Fundamental areas include clear mission objectives, product requirements,
   architecture, planning, performance, collaboration, communication, and
   decision-making.

 • Get the priorities right.  
Here we mean choosing which of the important things
   to do first and what to do next, for example:


      • Create a revenue stream first, then focus on cost optimization.
      • Establish the product mission goals first, then looks for solutions.
      • Plan first (to prove you can do it), then execute the plan.
      • Validate proposed solutions before committing to them.
      • Define the process first, then choose tools to support it.  Don't let the
        tools drive the process.
      • Prepare for risks before they occur.

 • Focus on decision-making.  Engineering is about choice, about making the best
   decisions with the information available, and about making those choices work.
   One can't always make the right decision, but one can usually make any decision
   right.  The basic approach at any engineering level is the same:

      • Convert the product mission into a problem (engineers need problems to solve).
        Understand the problem's goals, requirements, and constraints.
      • Identify the solution space for the problem domain.
      • Explore the space to find solutions that meet requirements.
      • Filter those solutions to eliminate the ones that are not feasible given the constraints.
      • Choose a solution, the best approach given current knowledge.
      • Validate your choice.  Model if appropriate.  Identify the risks.
      • Plan its implementation.
      • Implement the solution.  Uses power tools where possible.
      • Verify you've done the solution right.

   These nine steps each involve making decisions.  A clear and consensual
   decision-making process streamlines development and helps isolate errors.

 • Choose processes that support your business.  Creating the right processes
   for product software development is the essence of achieving both product
   and project quality.  Too much process is arguably better than too little, but it is best
   to find the right balance.  Process methodologies are at best guidelines.  An overly
   prescriptive change process can become the end instead of the means.
   Beware of adopting process tools before the process itself has been defined
   and validated, to avoid letting the tool drive the process.

These application principles are reflected in the SEA Product Development Pyramid.

Back to About Us

Home Page - About SEA - Site Map - Contact SEA - Terms of Use

©2008 Software Engineering Advisors LLC