Subscribe by Email


Friday, May 29, 2009

Benefits of Six Sigma certification (contd ..)

The previous post outlined some of the benefits that going in for Six Sigma certification entails. Here are some more benefits that are available as part of this certification:

- Six Sigma results in significant cost savings. Six Sigma lets you get more details about what is coming next, lets you prepare in more detail, there are less defects and less wastage
- The philosophy of Six Sigma is to improve customer satisfaction by preventing defects, thus resulting in greater satisfaction.
- Six Sigma initiates the practice of much enhanced vigilance about philosophy, about getting more customer satisfaction; and lead to the companies defining more measures for every element of the production / service chain
- Six Sigma training ensures that personnel are fully aware of the tools and techniques needed to improve quality, and explain the concept of variance, metrics, processes, etc to company personnel in a way that they would not have understood earlier
- The training helps people understand where all wastage happens in various processes, automatically leading to some reduction in waste
- Statistically, a company that has implemented Six Sigma is found to spend < 1% of revenue on rework compared to 10% for a company having Four Sigma
- Capacity and output are improved. As a part of reducing wastage, you can produce more correct products from the same capacity, or generate a higher level of software productivity from the same people
- Communication within the various groups is improved through the need for having better processes for all groups


Benefits of Six Sigma certification

Six Sigma is a major certification to display the quality of processes followed within a company; and it is not only limited to displaying the quality. The process of seeking and getting six sigma certification means that the company is making a statement that it wants its processes to be better, with lesser defects (both for manufacturing and services), and more customer focus. So what are the benefits that Six Sigma presents to companies that are looking to adopt it:
- First is the commitment to quality. Aiming for Six Sigma means that all levels of the organization are seeking to increase their commitment to quality, which automatically boosts the quality.
- Reduction in defects (and the public statement about the reduction in defects (whether these be through manufacture of goods or provision of services) means that customers would be more satisfied. As they see that the defect levels have gone down, they will be more likely to do repeat business.
- Many customers only entertain suppliers with a high level of quality, and having Six Sigma means that a company is displaying a very high commitment to quality, enabling the company to qualify for all cases
- Increased employee satisfaction. Many employees may be somewhat lukewarm to the concept of a more disciplined and quality focused approach, but as they see their output being valued by customers, they are likely to be more satisfied with their work.
- Increase productivity and profitability. As the number of defects reduce, the cost per unit of the production will go down, and will lead to enhanced levels of profitability, contributing to higher overall profits for the company
- The company will attract better talent, since a number of employees will feel more comfortable with a company employing such a high level of quality
(contd..)


Tuesday, May 26, 2009

What is Six Sigma ?

Six Sigma is an important measure of the quality of a system, being adopted by many top-class corporations the world over such as GE. Six Sigma has spawned an industry of its own, in terms of experts who go to corporations and figure out how these companies can improve their processes so as to meet Six Sigma quality standards, and there are teachers who give instructions as to how to become a Six Sigma expert. Six Sigma was initially implemented by Motorola, and is now adopted the world over. Six Sigma is primarily used in manufacturing and business practices, and seeks to improve the quality of process outputs by identifying and removing the causes of defects (errors) and variations. Six Sigmas has its own infrastructure, such as - It uses a set of quality management methods, including statistical methods, and creates a special infrastructure of people within the organization ("Black Belts" etc.) who are experts in these methods. Six Sigma was originally developed as a set of practices designed to improve manufacturing processes and eliminate defects, but its application was subsequently extended to other types of business processes as well. In Six Sigma, a defect is defined as anything that could lead to customer dissatisfaction.
Sigma (the lower-case Greek letter σ) is used to represent the standard deviation (a measure of variation) of a statistical population. The term "six sigma process" comes from the notion that if one has six standard deviations between the process mean and the nearest specification limit, there will be practically no items that fail to meet specifications.

As a comparison of the various quality norms:
Short-term sigma levels correspond to the following long-term DPMO (defective parts per million opportunities) values:

* 1 sigma = 690,000 DPMO = 31% efficiency
* 2 sigma = 308,000 DPMO = 69.2% efficiency
* 3 sigma = 66,800 DPMO = 93.32% efficiency
* 4 sigma = 6,210 DPMO = 99.379% efficiency
* 5 sigma = 230 DPMO = 99.977% efficiency
* 6 sigma = 3.4 DPMO = 99.9997% efficiency

Put another way, this reads as “3.4 defects per million opportunities to make defects”. This is a very high level of quality, and it takes a lot of effort, hard work, and process improvements to reach this level. Six Sigma is also being implemented by many software development companies for their projects.


Sunday, May 24, 2009

Data Flow Diagram - Some template locations

There are numerous locations on the internet where data flow templates can be found. Here are a few of the sites where you can find and use DFD templates.

Flowcharttools (depiction of what a template should look like) - Click here

Sample of what a Data Flow Diagram looks like (click here)

Sample DFD at docstoc (click here)

Samples at Gene Sarson (click here)

Templates at smartdraw (click here)

Example of DFD at conceptdraw (click here)

Visio and Word templates for DFD (click here)

Flowchart samples at edrawsoft (click here)


Thursday, May 14, 2009

Software design concepts

Design Concepts

A set of software design concepts have evolved over a period and are important for software personnel / architects to know.
Each concept helps the software engineer to answer the following questions:
1. What criteria can be used to partition software into individual components?
2. How is function or data structure detail separated from a conceptual representation of software?
3. Are there uniform criteria that define the technical quality of a software design?

Abstraction : It allows designers to focus on solving a problem without being concerned about irrelevant lower level details. As we move through different levels of abstraction we work to create procedural abstraction which refers to a named sequence of instructions in a specific function. A data abstraction is a named collection of data that describes a data object. It means that procedural abstraction uses the information contained in the attributes of the data abstraction.

Refinement : It is a process of elaboration. It is a top-down design strategy. A macroscopic statement is decomposed and a hierarchy is developed in a stepwise fashion until programming language statements are reached.

Abstraction and refinement are complimentary concepts. Abstraction suppress low level details whereas Refinement helps the designer to reveal low level details.

Modularity : Software is divided into separately named and addressable components called modules that are integrated to satisfy problem requirements. There are five criteria that enable us to evaluate a design method with respect to its ability to define an effective modular system:

- Modular decomposability : A design method provides a systematic mechanism for decomposing the problem into sub-problems, hence, reduce the complexity and achieve the modularity.

- Modular composability : A design method enables existing design components to be assembled into a new system.

- Modular understandability : A module can be understood as a standalone unit it will be easier to build and easier to change.

- Modular continuity : Small changes to the system requirements result in changes to individual modules, rather than system-wide changes.

- Modular protection : An aberrant condition occurs within a module and its effects are constrained within the module.


Design Guidelines and Design Principles

Continuing on the earlier post about design processes in software engineering:

Design Guidelines:

The criterion for a good design in order to evaluate the quality is as follows:
- It should have a good architectural structure.
- It should be modular in nature.
- It should lead to interfaces properly.
- It should contain distinct representations of data, architecture, interfaces, components.
- It should lead to data structures that are appropriate for the objects that are to be implemented.
- It should lead to components that have independent functional characteristics.
- A design should be derived using a repeatable method that is driven by information obtained during software requirements analysis.


Design Principles

A set of principles for software design are ::

- The design process should not suffer from “tunnel vision”.
- The design should be traceable to the analysis model.
- The design should not reinvent the wheel.
- The design should “minimize the intellectual distance” between the software and the problem in the real world.
- The design should exhibit uniformity and integration.
- The design should be structured to accommodate change.
- The design should be structured to degrade gently.
- Design is not coding.
- The design should be assessed for quality.
- The design should be reviewed to minimize conceptual errors.


Thursday, May 7, 2009

A brief summary of Design Models

This post is just a brief summary of design models, this is a huge topic, and will cover in future posts in parts.

Data Design Model: In order to implement the software we need to convert the analysis class models into the data structures and design classes and this is accomplished using data/class designs. For data design activity we need to have classes and relationships that are defined by CRC index cards and data content depicted by class attributes.

Architectural Design: It defines the relationship between the structural elements, the architectural styles and design patterns, and the constraints that affect the way in which architectural can be implemented.

Interface Design: It describes how the software elements communicate with each other, with other systems and with human users.

Component Level Design: Structural elements of the software architecture need to be converted into a procedural description of software components and this is accomplished through component level design.

These models collectively form the design model, which is represented diagrammatically as a pyramid structure with data design at the base and component level design at the pinnacle. Each level produces its own documentation, which collectively form the design specifications document, along with the guidelines for testing individual modules and the integration of the entire package.


A brief summary of design engineering

Design Engineering is a process used by software engineers which encompass the set of principles, concepts and practices that result in the development of a high quality system or product. Design Engineering is the point which actually has a great role in determining the quality of the software, and a careful review of the design process is useful in ensuring that the quality of the software remains high. Software design serves as the foundation for all software engineering steps that follow regardless of which process model is being employed. Without a proper design we risk building an unstable system – one that will fail when small changes are made (and we all know how likely small (or even big) changes can happen, one that may be difficult to test; one whose quality cannot be assessed until late in the software process, perhaps when critical deadlines are approaching and much capital has already been invested into the product. Making changes later down in the cycle to compensate for problems in the design process is not guaranteed to succeed, and is expensive.

Steps Involved In Design Engineering:

1. Identifying the need.
2. Defining the problem.
3. Conducting Research.
4. Narrowing Research
5. Analyzing set criteria
6. Finding alternative solutions
7. Analyzing possible solutions
8. Making a decision.
9. Presenting the product.
10. Communicating & selling the product.

During the design process the software specifications are transformed into design models that describe the details of the data structures, system architecture, interface, and components. Each design product is reviewed for quality before moving to the next phase of software development. At the end of the design process a design specification document is produced. This document is composed of the design models that describe the data, architecture, interfaces and components.


Saturday, May 2, 2009

Data Flow Diagram Tools

The Data Flow Diagram (DFD) is an important part of the overall software document architecture. Here are some tools that will help in the generation of Data Flow Diagrams:

SmartDraw (link): Select a template, input your information, and SmartDraw does the rest—aligning everything automatically and applying professional design themes for professional-quality results every time.

Artiso Visual Case (link): Can clearly and effectively document the flow of data through your system and its interaction with elements external to the system. A commercial tool.

Edraw Flowchart (link): Edraw is a rapid and powerful data flow diagram software, novel, small and exquisite, which creates data flow diagrams and business charts with minimum time loss. It includes some data flow diagram examples such as students information data flow diagram, human resources data flow diagram, physical data flow diagrams and functional data flow diagram. A commercial tool.

ConceptDraw PRO Data Flow Diagram (link): ConceptDraw PRO allows you to quickly create data flow diagrams with data storages, external entities, functional transforms, data flows, as well as control transforms and signals. A commercial license.

Edge Diagrammer (link): Create a wide variety of technical, presentation, and design flowcharts efficiently and with the highest quality results. EDGE Diagrammer is all you need for block diagrams, org charts, family trees, Data Flow Diagrams and more. Free extension packs are available to provide support for many different diagramming methodologies. A commercial tool.

IBMS/DFD tool (link): The tool helps the users drawing a standard data flow diagram (a process-oriented model of information systems) for systems analysis and mapping it into a SER model (a data-oriented model of information systems) for database design.

JUDE/Professional (link): JUDE/Professional is the Design and Communication Tool lets you draw UML, ER, Flowchart, CRUD, Data Flow Diagram and Mind Map. It has enriched features, such as input-output and diagram creation guidance. It is suitable for business use, large-sized models, and document creation. A commercial tool.


Facebook activity