Principles That Guide Practice
Principles That Guide Practice
Principles That Guide Practice
Principle #6. Look for patterns. Brad Appleton [App00] suggests that:
The goal of patterns within the software community is to create a
body of literature to help software developers resolve recurring
problems encountered throughout all of software development.
Principle #7. When possible, represent the problem and its solution from a
number of different perspectives.
Communication Principles
Principle #1. Listen. Try to focus on the speakers words, rather than
formulating your response to those words.
Principle # 2.
Communication Principles
Principle # 6. Strive for collaboration. Collaboration and consensus occur when the
collective knowledge of members of the team is combined
Principle # 7. Stay focused, modularize your discussion. The more people involved in
any communication, the more likely that discussion will bounce from one topic to the
next.
Principle # 9. (a) Once you agree to something, move on; (b) If you cant agree to something,
move on; (c) If a feature or function is unclear and cannot be clarified at the moment, move on.
Principle # 10. Negotiation is not a contest or a game. It works best when both parties win.
Planning Principles
Principle #1. Understand the scope of the project. Its impossible to use a
roadmap if you dont know where youre going. Scope provides the
software team with a destination.
Principle #2. Involve the customer in the planning activity. The customer
defines priorities and establishes project constraints.
Principle #4. Estimate based on what you know. The intent of estimation is
to provide an indication of effort, cost, and task duration, based on the
teams current understanding of the work to be done.
Planning Principles
Principle #5. Consider risk as you define the plan. If you have identified risks
that have high impact and high probability, contingency planning is necessary.
Principle #6. Be realistic. People dont work 100 percent of every day.
Principle #7. Adjust granularity as you define the plan. Granularity refers to
the level of detail that is introduced as a project plan is developed.
Principle #8. Define how you intend to ensure quality. The plan should identify
how the software team intends to ensure quality.
Principle #10. Track the plan frequently and make adjustments as required.
Software projects fall behind schedule one day at a time.
Modeling Principles
In software engineering work, two classes of models can be
created:
Requirements models (also called analysis models)
represent the customer requirements by depicting the
software in three different domains:
The information domain(Problem )
The functional domain(Main functions)
Behavioral domain. (External interfaces)
Design models represent characteristics of the software
that help practitioners to construct it effectively: the
architecture, the user interface, and component-level
detail.
7
requirements model.
Principle #2.
#3.
Strive
to
produce
the
10
Construction Principles
The construction activity encompasses a set of
coding
and
testing
tasks
that
lead
to
programming
style,
programming
Preparation Principles
Before you write one line of code, be sure you:
Understand of the problem youre trying to
solve.
Understand basic design principles and
concepts.
Pick a programming language that meets the
needs of the software to be built and the
environment in which it will operate.
12
Coding Principles
[Boehm's] practice.
Consider the use of pair programming
Select data structures that will meet the needs of the design.
Understand the software architecture and create interfaces that are
standards.
Write code that is self-documenting.
Create a visual layout (e.g., indentation and blank lines) that aids
understanding.
13
Validation Principles
Testing Principles
Al Davis [Dav95] suggests the following:
15
Deployment Principles
Principle #1.
Too often, the customer expects more than the team has promised to deliver,
and disappointment occurs immediately.
Principle #2. A complete delivery package should be assembled and tested.
Principle #3.
delivered.
16