LINUX.IE, website of the Irish Linux Users' Group
Tux rules!

   
Home
New Users
Articles
Download
Projects
Community
Vendors

  Print Version
 
Archives:


planetILUG

Recent News

News Archive


Join the
ILUG
on FaceBook


Join the
ILUG
on LinkedIn


Join the
ILUG SETI
Group



















 
 :: Mailing Lists

[ILUG] Open Source Developers and Users Survey

[ILUG] Open Source Developers and Users Survey

Brian Foster blf at utvinternet.ie
Sun Jul 1 22:51:40 IST 2007


  | Date: Sun, 01 Jul 2007 18:02:43 +0100
  | From: Kae Verens <kae at verens.com>
  | Errors-To: ilug-bounces at linux.ie
  | 
  | Patrick O'Connor wrote:
  | > Thanks again Kae, I feel like an idiot for not testing it thoroughly
  | > before release.  That is why I am in constant awe of good devs!! ;)
  | 
  | I think I wouldn't be alone in saying that it's not usually the
  | developer that notices the bugs!  I have a habit of writing code,
  | testing only the bits I'm interested in, and publishing it.
  | Thank $deity for bug testers that are not coders!

 good developers tend to have (learn) a number of
 habits.  perhaps the most critical is to keep
 learning.  in particular, to learn from mistakes
 (not only yer own, but those of others as well).

 so, for instance in this case, if Patrick were
 to ever do another survey, I'd hope he'd recall
 this experience and (guessing here) try to check
 (more of) the various decision paths.

 the Really Good developers do more than just
 learn.  they  (i) actively try to avoid mistakes;
 and  (ii) actively try to ensure the (inevitable)
 mistakes are easy to identify, root-cause, fix,
 and (re-)test.  these are all closely related.

 generally, this mean carefully thinking through
 the design _and_ how to both test and debug the
 implementation (and, when possible, the design
 and/or model(s) itself).

 that need not be complicated.  (and, in fact, it
 should not be complicated, since, e.g., any debug
 code must also be debugged.)  as one example, I'm
 a huge fan of “asserts” (esp. for languages that
 support the concept).  a design/implementation
 with known entry/intermediate/exit conditions can
 translate into a highly useful, and natural, set
 of invariants (assertions).  I find that putting
 effort into writing correct, not always trivial,
 assertions helps to check the code as I write,
 and flags up specific (additional) cases to be
 tested.  plus, when a correct assert detonates,
 because (my) code is liberally sprinkled with 'em,
 the detected failure is often quite close to the
 coding error.

 ( however, I'm not saying that that approach is
  necessarily viable in Patrick's current case. )

 another part of this active process of problem
 avoidance is to realise it never stops; or, to
 put it another way, the tests et al. will have
 to be, for whatever reasons (plural), repeated
 more than once in the future.

 what that translates into depends very much on
 just what it is you need to test.  again using
 myself as an example, in my last job, this was
 “easy”:  I worked on a compiler, and compilers
 are very deterministic.  so there was a large
 and ever-growing fully automated test suite.
 the suite tended to test the rare and corner
 cases, since (as Dr Knuth and others have
 observed), the usual cases tend to take care
 of themselves (and are often covered by the
 rare and corner case testing).

 more relevant is the effort put into the test
 suite:  the rule-of-thumb was it took at least
 as long to develop a suitable collection of
 tests as it did to develop (or fix) the feature
 being tested.  e.g., if it took a day to twiddle
 the compiler, it'd take at least another day to
 build a comprehensively adequate set of tests.
 (this wasn't because the test suite was hard to
 extend — it was easy (by design!) to extend — but
 because non-trivial testing is, well, non-trivial.)

 ( however, what repeating testing means in the
  case of GUIs, such as Patrick's survey, seems
  tricky?  I'm not a GUI person, so I'm not too
  up on just what is possible or recommended. )

 the upshot of learning from mistakes, designing
 out defects, designing in tests and debugability,
 and repeating testing is it can be “the coders”
 who find (most of) the problems.

 nonetheless, testers, test suites, et al., who
 are not coders and developmental tests are still
 critical.  but they are essentially a last resort
 (or at least used as one); broadly, if they (or
 the users/customers/clients) find a bug, it is
 a lot harder/slower/expensive to fix.

 which is one reason Really Really Good developers
 try to “front load” the design and development.
 the sooner (and quicker) an issue is identified,
 the sooner, cheaper, and better it can be fixed
 (or, if found soon enough, essentially avoided).

 ( there are many different ways of front loading;
  “rapid prototyping” is a popular technique ATM. )

 then of course, in cases like Patrick's survey,
 there's the issue of designing a useful survey
 (and obtaining useful replies).  this can be
 rather tricky!   I note Patrick's survey is
 self-selecting (which can be Ok); this e-mailing
 list is perhaps a biased collection of potential
 respondents (which can be Ok); and (after quickly
 looking at it) did not see  (1) any attempt to
 check what “open source” means (to the respondent);
 nor  (2) any attempt to quantify this mysterious
 “open source” versus probable alternatives (e.g.,
 proprietary, internal, non-computerised, et al.).

 apologies for rambling on.  and on.  and on!...  ;-)
cheers!
	-blf-
-- 
▶ ▶  I AM CURRENTLY LOOKING FOR A JOB!  ◀ ◀ | Brian Foster
Experienced (>25 yrs) software engineer:    |        Montpellier, FRANCE
 • Unix, Linux, embedded, design-for-test;  | Stop E$$o (ExxonMobile)!
 • Software/hardware co-design, debugging;  |     http:/www.stopesso.com
 • Kernels, drivers, filesystems, &tc;    Résumé (CV) & contact details:
 • IDL, automated testing, process, &tc.   http://www.blf.utvinternet.ie



More information about the ILUG mailing list
Read this without the formatting.
                                                                                                    

 

Hosted by HEAnet


Maintained by the ILUG website team. The aim of Linux.ie is to support and help commercial and private users of Linux in Ireland. You can display ILUG news in your own webpages, read backend information to find out how. Networking services kindly provided by HEAnet, server kindly donated by Dell. Linux is a trademark of Linus Torvalds, used with permission. No penguins were harmed in the production or maintenance of this highly praised website. Looking for the Indian Linux Users' Group? Try here. If you've read all this and aren't a lawyer: you should be!
RSS Version
Powered by Dell