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/vol4/no5/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /domains/srakitin/OLD/newsletter/vol4/no5/vol4no5.txt
Food for Thought-An e-newsletter published by Software Quality Consulting, Inc.
May 2007, Vol. 4 No. 5
Learn from your Elders 

To view a web version of this newsletter, click on the following link:
http://www.swqual.com/newsletter/vol4/no5/vol4no5.html.

What topics would you like to see in this newsletter?  Each month, this
newsletter tries to provide you with useful information.  This is a two-way
street and your feedback is important.  Please send your thoughts and comments
to [email protected].

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

Welcome to Food for Thought(TM), an e-newsletter from Software Quality
Consulting (http://www.swqual.com/index.html?Intro). 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
(http://ui.constantcontact.com/roving/sa/fp.jsp?plat=i&p=f&m=sctz69n6). 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?Newsletter). 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, I offer some suggestions on selecting an 
appropriate development methodology...

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 

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

*** This Month�s Topic ***

Learn from your Elders 

At a recent Boston SPIN meeting (http://www.boston-spin.org/), I had a one-on-
one conversation with Ed Yourdon (http://www.yourdon.com/). Ed is truly a
visionary in our field. After graduating from MIT, he started working in the
computer industry in 1964 at Digital Equipment Corporation where he wrote the
FORTRAN math library for the PDP-5 and the assembler for the popular PDP-8
minicomputer. He has since written 27 books (http://www.yourdon.com/
publications/index.html) and become a world renowned consultant on software
engineering methodologies and web technology.

I asked Ed why it seems that younger software engineers aren�t 
learning critical project management skills from their more experienced 
colleagues. He agreed that this seems to be the case and recalled a 
conversation he had with a colleague on this subject. After the meeting, I 
sent Ed an e-mail asking him about this conversation and he replied by 
sharing the e-mail with me. This is what he wrote:

  �Prior to the 1960s, we lived in what anthropologist Margaret Mead 
  referred to as a �post-figurative� world, in which society and 
  technology was relatively stable from one generation to the next; that 
  was obviously true to an even greater extent in the 19th century, and 
  even more so in the 18th century.  The result of that situation is that 
  each generation learned how to function in society reasonably 
  successfully, and since things were more-or-less the same when THEIR 
  kids began growing up, it was �obvious� that parents knew more than 
  kids, and that kids could (and should) learn whatever they needed to 
  know from their parents. There was still the phenomenon of puberty-based 
  rebellion, and the need to go explore uncharted frontiers that the older 
  generation hadn�t gotten to yet; but the general perception was that 
  parents knew what they were talking about, and kids went through an 
  apprenticeship period in order to acquire that knowledge and experience.

  By the 1960s, though, we had entered a �co-figurative� state, according 
  to Margaret Mead; technology, society and politics were changing so 
  quickly that parents and children were faced with dramatically new and 
  different circumstances at the same time, and thus both had to learn new 
  skills and new behaviors at the same time.

  The most extreme form of this process is a �pre-figurative� state, in 
  which technology is changing so quickly that old timers can�t keep up 
  with it, and children learn BEFORE their parents.  A trivial example 
  we�ve all seen is the parent who is so befuddled by the task of 
  programming a VCR that he simply gives up and asks his 8 year old kid to 
  do it.�  [1]

According to Ed, each new generation of software engineers believes that 
the previous generation is �old-fashioned� and �just doesn�t get it�. 
These kids were raised in the technology era and believe that technology 
and technology alone can solve all problems. While they are definitely 
able to assimilate change and new technology faster than the previous 
generation and certainly faster than the Baby Boomers, what they don�t get 
is: 

  �As the older generation gets older and older, and as it accumulates 
  more and more scars from years of project experiences, it realizes that 
  politics and people represent 99.9% of the difference between success 
  and failure.� [1]

The current generation of software developers has much to learn about 
effective project management techniques. In fact, the approach most often 
used to develop software today is often referred to as the �code-and-fix� 
approach. As Steve McConnell observed:

  �The most common approach to software development today is 
  code-and-fix programming � or hacking. In this approach, a development 
  team begins with a general idea of what they want to build. They might 
  have a formal specification, but probably not. They use whatever 
  combination of informal design, code, debug, and test methodologies 
  suits them. Programmers write a little code and run it to see whether it 
  works. If it doesn�t work, they change it until it does.

  The code-and-fix approach is far from the state of the art in software 
  development. It costs more, takes longer, and produces lower-quality 
  software than other approaches; its main advantage is that it requires 
  little technical or managerial training. Leading organizations have 
  known and used effective software development practices for decades, but 
  the gap between average practice and best practice in software is 
  enormous.� [2]

The �code-and-fix� approach represents one end of the product development 
spectrum. At the other end is the �get-it-right-the-first-time� approach. 
Watts Humphrey [4] stated that this approach is always the most efficient 
way to work. 

However, we often need to find a middle-ground since we don�t always have 
all the requirements and as a result, we have to do some amount of 
code-and-fix.

The issue here is that when we use the code-and-fix approach, the 
likelihood that we inject more defects increases significantly. We need 
effective techniques to mitigate this problem... 

DESK-CHECK YOUR WORK! 

Desk-checking your work is like proof-reading a report or other document. 
Sure, word processors can find spelling errors and some grammatical gaffes 
but spell checkers have limitations. The following sentence draws no 
complaints from most spell checkers:

  Eye oft ten remand stew dents that spill-chick cant reed fur scent.  Ass 
  any one who reeds this can sea, spill-chick is not gong to ketch awl 
  mist takes.  It�s no subs tee toot fir poof reeling.

Compilers, like spell checkers, are good at finding common syntax 
errors. But compilers often can�t find subtle semantic errors, such as 
misplaced semi-colons or missing else clauses. In addition, compilers are 
software, and as we all should know by now, all software is defective
(http://www.swqual.com/newsletter/vol2/no11/vol2no11.html)...

Young software engineers don�t seem to have learned why desk-checking 
their code before compiling is so important. The attitude of younger 
software engineers seems to be:

  �Why spend time desk checking my code when I can let the compiler find 
  most of my mistakes...�

Allowing the compiler to find your mistakes means that you are not taking 
responsibility for the defects you have created, as Watts Humphrey 
observed:

  �The current common view that it is impossible to produce defect- free 
  software is an excuse for not making the effort to do quality work. To 
  do quality work, developers need to:

  - Insist on starting with clearly written requirements

  - Perform peer reviews of requirements, designs, code

  - Apply conceptual integrity to system design

    Take pride in your work!� [3] 

So, even when we are forced to use a code-and-fix approach, there are ways 
we can take responsibility for the quality of our work and minimize 
defects injected... 

Desk-checking is a technique that SQA engineers can benefit form as well. 
Desk-checking tests is a good way to save time by making sure the test is 
correct before trying it out. 

YOU CAN LEARN FROM YOUR ELDERS 

As a young software engineer, I was fortunate to have had the opportunity 
to learn from several skilled and talented engineers during my 
�apprenticeship�. These mentors not only helped me with technical skills 
but also helped me with:

- Inter-personal communication skills 
- Writing and presentation skills 
- Management skills 
- Understanding corporate culture and politics 

They also taught me how to use �the system� to get work done. These skills 
are not taught in school and cannot be supplanted by the latest 
technology. 

As I stated in my Oct 2006 newsletter (http://www.swqual.com/newsletter/
vol3/no8/vol3no8.html), 

  �The natural hierarchy that exists in other engineering professions does 
  not exist in the software engineering profession. Software engineering 
  lacks apprentice and mentoring relationships common in most every 
  engineering profession. Such relationships are critical if software 
  engineering is ever to become a true engineering profession.�

When I asked Ed why he thought young engineers are not learning from their 
more experienced peers, he observed that:

  �The problem is that they tended to ignore and reject ALL of our 
  lessons, including those that were language-independent and that could 
  be (and should be) re-expressed in whatever modern terminology is 
  appropriate.  Ultimately this does happen, and the new generation is 
  dazzled by terminology like �use cases�, when the older generation 
  shakes its head in amusement and thinks back to the equivalent notion of 
  data-flow diagrams. But even more important, the younger generation 
  tends to think that ALL problems are technologically-oriented, and that 
  they can all be solved by brute-force application of a newer, better, 
  faster, cheaper technology. They don�t like politics, don�t communicate 
  or socialize well, and thus tend to shy away from those areas.  

  Sometimes the technology is the straw that breaks the camel�s back, but 
  most of the time there are far more fundamental issues and problems that 
  need to be solved; and these are the same issues and problems that I 
  faced when I stumbled into the computer field in 1964, and are probably 
  the same as every engineering-oriented project faced all the way back to 
  the days of the building of the pyramids.� [1]

EVERYONE NEEDS A MENTOR 

Since the software engineering profession doesn�t recognize the importance 
of an apprenticeship, it is imperative that young software engineers and 
SQA engineers find a mentor. Mentors can provide young engineers with 
essential �soft� skills that can help them improve their effectiveness and 
provide them with skills that can only be handed down from a more 
experienced engineer. 

Some organizations have recognized the importance of mentoring young 
engineers and have in-house mentoring programs. If your company is one of 
these organizations, participating as either a mentor or mentee can 
provide significant benefits to both the organization and to the 
individuals involved. 

If your organization does not have an in-house mentoring program, the IEEE can
help. Recently, the IEEE launched a mentor program (http://www.ieee.org/
organizations/rab/gold/mentoring.html) which aims to identify IEEE members who
are looking for mentors and pair them with IEEE members who are interested in
being a mentor.

�Till next time... 

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

*** Monthly Morsels ***

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

- References:

  [1] Excerpts from an e-mail from Ed Yourdon to Al Davis, February 2002. 

  [2] McConnell, S. and Tripp, L., �Professional Software Engineering � 
  Fact or Fiction�, IEEE Software, Nov/Dec 1999. (http://www.swqual.com/
  newsletter/vol3/no8/McConnell.pdf)

  [3] Humphrey, W., �The Quality Attitude�, news@sei newsletter, Number 3, 
  2004. (http://www.sei.cmu.edu/news-at-sei/columns/watts_new/2004/3/
  watts-new-2004-3.htm)

  [4] Humphrey, W., Winning with Software � An Executive Strategy, 
  Addison-Wesley, 2001. 

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

*** Calendar ***

Every month you�ll find news here about local and national events that 
are of interest to the software community...

- 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/index.html?AboutSQC) 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, Predictable Software Development, Act Like a Customer,
and ALAC are trademarks of Software Quality Consulting, Inc.
Copyright 2007. Software Quality Consulting, Inc. All rights reserved.
Graphic design by Sage Studio  

Anon7 - 2021