Process

What is Process?

Process is a set of rules, executable steps built from human mistakes, to mechanically minimize human mistakes.

 

(It's the mechanical part of human intelligence that runs the daily world; and the non-mechanical part creates art and ruins)

 

What is a GOOD Process?

A good process defines a minimum set of steps, each of them guards quality from a problem experienced before.

 

(In engineering world, anything you let slip away is going to bite you back, badly, painfully.)

 

What is Software Quality?

(http://en.wikipedia.org/wiki/Software_quality)

Completeness; Conciseness; Consistency; Effectiveness; Efficiency;  Maintainability; Reliability; Security; Structuredness; Testability; Traceability; Understandability; Usability...

 

 

How to pratice?

 

Section

Practice

Guards What

SCM

Source control

Data consistency

 

Verbose check-in message

Communication effectiveness; traceability; maintainability

 

Separated step to commit formatting changes

Maintainability

 

Code branching

Maintainability

Documentation

Design spec

Understandability, traceability, maintainability

 

Code comment

Understandability, traceability, maintainability

 

Communication archive (Email, IM/Conf call recap)

Data completeness, effectiveness/efficiency of decision making; traceability

Development

Unit test

Testability, reliability, efficiency, security

 

Code review

Conciseness; consistency;  Structuredness;  Reliability;  Efficiency;  Security; understandability

 

Naming convension

Understandability

Management

Risk

Reliability

 

Requirement

Consistency, traceability

 

Resource (estimate, planning, time tracking, bug reports filtered by PL)

Productivity, efficiency

 

Release

Reliability, understandability

QA

Regression against each build

Consistency, reliability

 

Well formatted bug report

Understandability, efficiency, traceability

 

Cross ref between bug & chgset

Traceability

 

RCA

Traceability, understandability

 

 

Common Questions

 

Question

Answer

Reason

Do we have to apply every step of a whole process from the beginning?

No

Depends on the team's engineering maturity level, comfort zone, and the team lead's confidence of process execution.
Improve your team's engineering maturity iteratively, gradually -

If your team doesn't even have source control before, let's start from the very basic thing - as the team gets comfortable with new practices, you can start trying/introducing more practices.

Are there any guaranties that by executing every step of a process will eliminate all quality issues?

No

It only guaranties the same mistakes won't be made again. As long as we are human, we tend to make new mistakes while the complexity increases, we'd better keep our minds open to learn new lessons and define new processes.

 

 

 

你可能感兴趣的:(Security)