From: Andy Walls <awalls@radix.net>
To: Glenn McGrath <glenn.l.mcgrath@gmail.com>
Cc: linux-dvb@linuxtv.org
Subject: Re: [linux-dvb] How to measure API "goodness"?
Date: Thu, 11 Sep 2008 22:32:37 -0400 [thread overview]
Message-ID: <1221186757.2648.78.camel@morgan.walls.org> (raw)
In-Reply-To: <141058d50809092040m6ccbcer2ff26cf109a63682@mail.gmail.com>
On Wed, 2008-09-10 at 13:40 +1000, Glenn McGrath wrote:
> On Wed, Sep 10, 2008 at 10:42 AM, Andy Walls <awalls@radix.net> wrote:
> >
> > This leads into something I've been thinking about the past few days
> > that's probably worth discussion out loud:
> >
> > What are the attributes to measure for comparing APIs or API proposals?
> > How can each attribute be measure objectively (if possible)?
> > What are the units for each measurement attribute?
> > What weight should be given to each attribute?
> > Given the back and forth on the list, I thought some discussion on how
> > one might perform a technical evaluation of an API may be productive.
> > The list conversations on certain point aspects of API proposals, would
> > benefit from rough concensus on how API "goodness" should be measured in
> > the first place, instead of arguing over perceptions/measurements that
> > may not be that important to a "good" API.
> >
> >
> > Regards,
> > Andy
>
> Well said,
Thank you.
> but can the goodness of an API even be measured ?
IMO, sure. Objective, consistent, and (reasonably) repeatable
assessment may be tricky.
Is it worth the work? Maybe not. I depends on the payoff.
> The more i learn about programming the more i think software
> blueprints (to avoid saying design) are created rather than designed,
> and that deep down this is a discussion of science vs art.
I suspect that had this API project started by going through a thorough
development waterfall:
High Level Requirements capture
High Level Design
High Level Design Review
Functional allocation/breakdown
Detailed Requirements capture
Detailed Design
Test Development
Detailed Design Review
Code
Compile
Code Review
Unit Test
Integration Test
System Test
then all these list discussions would have been moot and there would
only be the one, well reviewed API, *especially* with the proper parties
participating in the design reviews.
Although it may still have been 2 years to get something... ;)
On art vs. engineering:
Software development can be undertaken as a rigorous engineering
discipline, but doing so can take all the enjoyment out of it for the
developers.
Treating software development as an undisciplined art yields results and
schedules that are difficult to reliably predict, manage, and control;
so managing the project costs and software quality becomes a real
problem.
> For example, to many the 5 measurable attributes you specify come
> under the subjective value of beauty,
Actually I'd imagine the attributes would end up being assessed/scored
subjectively by individuals. With enough people, with a minimum level
of experience, performing an assessment, averaging the subjective scores
for one attribute and computing a variance would come close to a good
objective assessment of an API against any particular attribute.
I'd also contend that beauty is a natural consequence of scoring high on
a majority of the attributes and not the other way around. But I agree
with you that there is a correlation.
> people will quickly decide if
> they personally like an API or not, and that is likely to determine
> how useful it is.
I'll agree. There are subsets of people in any assessment with their
own agendas or interests. In this case, I can hypothesize groups with
differing motivations that may wish to add weight to certain other
attributes for calling an API good:
1. users: usually want the API to support their particular hardware as
soon as possible with minimal effort on their part
2. kernel devs: may want an API that is easy to adopt and maintain,
especially on the "inward facing" side. Also want to enhance the linux
kernel functionality in the long run.
3. people with some financial interest in supporting customers or
employers: may want their customer's or employer's hardware and user
apps supported as soon as possible.
4. application writers: may often prefer an API with minimal complexity
to use that also doesn't force them to rework a lot of existing code.
The hypothesized groups above have desires to satisfy differing short to
mid terms goals. An API ideally should be selected to guarantee gains
in the long term. IMO
> If you do find any references on measuring an API (or a design) i
> would love to read them.
I haven't had time to look yet. Crazy week at work. I doubt I'll find
anything anyway. :P
Regards,
Andy
> Glenn
_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
next prev parent reply other threads:[~2008-09-12 2:32 UTC|newest]
Thread overview: 71+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20080908195603.GE10714@braindead1.acher>
2008-09-09 0:43 ` [linux-dvb] Multiproto API/Driver Update barry bouwsma
2008-09-09 1:17 ` hermann pitton
2008-09-09 12:02 ` barry bouwsma
2008-09-09 12:12 ` Rudy Zijlstra
2008-09-09 15:33 ` Markus Rechberger
2008-09-09 20:59 ` Simon Kenyon
2008-09-09 21:14 ` Markus Rechberger
2008-09-10 0:02 ` Steven Toth
2008-09-10 0:42 ` [linux-dvb] How to measure API "goodness"? Andy Walls
2008-09-10 3:40 ` Glenn McGrath
2008-09-10 4:14 ` hermann pitton
2008-09-11 23:05 ` Johannes Stezenbach
2008-09-12 1:13 ` Markus Rechberger
2008-09-12 2:32 ` Andy Walls [this message]
2008-09-13 22:46 ` [linux-dvb] Multiproto API/Driver Update Manu Abraham
2008-09-13 22:56 ` Markus Rechberger
2008-09-13 23:31 ` Manu Abraham
2008-09-14 2:10 ` Markus Rechberger
2008-09-14 10:51 ` barry bouwsma
2008-09-14 13:51 ` Markus Rechberger
2008-09-14 14:29 ` Steven Toth
2008-09-14 14:27 ` Steven Toth
2008-09-14 15:14 ` barry bouwsma
2008-09-14 15:28 ` Markus Rechberger
2008-09-14 16:54 ` Steven Toth
2008-09-14 19:51 ` Markus Rechberger
2008-09-14 21:57 ` Steven Toth
2008-09-14 22:03 ` Andreas Oberritter
2008-09-14 22:27 ` Steven Toth
2008-09-14 22:33 ` Markus Rechberger
2008-09-14 22:41 ` hermann pitton
2008-09-16 16:45 ` Benny Amorsen
2008-09-16 19:04 ` [linux-dvb] OT: Dual/BSD Licensing (was: Re: Multiproto API/Driver Update) BOUWSMA Barry
2008-09-16 19:16 ` [linux-dvb] OT: Dual/BSD Licensing Benny Amorsen
2008-09-14 15:38 ` [linux-dvb] Multiproto API/Driver Update Markus Rechberger
2008-09-14 17:02 ` Steven Toth
2008-09-14 18:51 ` Manu Abraham
2008-09-14 20:08 ` Christophe Thommeret
2008-09-15 0:17 ` hermann pitton
2008-09-14 20:45 ` Andy Walls
2008-09-14 21:01 ` Manu Abraham
2008-09-14 22:20 ` Andy Walls
2008-09-14 22:36 ` Manu Abraham
2008-09-15 4:23 ` hermann pitton
2008-09-14 21:03 ` Manu Abraham
2008-09-15 5:50 ` Julian Scheel
2008-09-15 15:42 ` Michael Krufky
2008-09-19 10:58 ` Julian Scheel
2008-09-19 19:51 ` VDR User
2008-09-24 16:54 ` Oliver Endriss
2008-09-15 23:10 ` Andy Walls
2008-09-16 2:55 ` hermann pitton
2008-09-14 3:39 ` hermann pitton
2008-09-14 19:08 ` Simon Kenyon
2008-09-14 19:25 ` Markus Rechberger
2008-09-14 20:54 ` Simon Kenyon
2008-09-14 21:00 ` Markus Rechberger
[not found] ` <48CD87B1.5010702@linuxtv.org>
[not found] ` <20080915121606.111520@gmx.net>
[not found] ` <48CE7838.2060702@linuxtv.org>
[not found] ` <23602.1221904652@kewl.org>
[not found] ` <48D51000.3060006@linuxtv.org>
[not found] ` <25577.1221924224@kewl.org>
[not found] ` <20080921234339.18450@gmx.net>
[not found] ` <8002.1222068668@kewl.org>
[not found] ` <20080922124908.203800@gmx.net>
[not found] ` <10822.1222089271@kewl.org>
[not found] ` <48D7C15E.5060509@linuxtv.org>
[not found] ` <20080922164108.203780@gmx.net>
[not found] ` <20022.1222162539@kewl.org>
[not found] ` <20080923142509.86330@gmx.net>
[not found] ` <4025.1222264419@kewl.org>
[not found] ` <4284.1222265835@kewl.org>
[not found] ` <20080925145223.47290@gmx.net>
[not found] ` <18599.1222354652@kewl.org>
[not found] ` <Pine.LNX.4.64.0809261117150.21806@trider-g7>
[not found] ` <21180.1223610119@kewl.org>
[not found] ` <20081010132352.273810@gmx.net>
[not found] ` <48EF7E78.6040102@linuxtv.org>
[not found] ` <30863.1223711672@kewl.org>
[not found] ` <48F0AA35.6020005@linuxtv.org>
[not found] ` <773.1223732259@kewl.org>
[not found] ` <48F0AEA3.50704@linuxtv.org>
[not found] ` <989.1223733525@kewl.org>
[not found] ` <48F0B6C5.5090505@linuxtv.org>
[not found] ` <1506.1223737964@kewl.org>
[not found] ` <48F0E516.303@linuxtv.org>
[not found] ` <20081011190015.175420@gmx.net>
2008-10-13 15:37 ` [linux-dvb] Multi-frontend patch merge (TESTERS FEEDBACK) was: Re: [PATCH] S2API: add multifrontend Steven Toth
2008-10-13 16:07 ` Darron Broad
2008-10-13 16:18 ` Steven Toth
2008-10-13 21:19 ` hermann pitton
2008-10-13 23:23 ` Hans Werner
2008-10-17 1:20 ` Hans Werner
2008-10-14 5:25 ` Andreas Oberritter
2008-10-14 10:42 ` Darron Broad
2008-10-14 22:06 ` Steven Toth
2008-10-14 14:57 ` Steven Toth
2008-10-15 16:44 ` Christophe Thommeret
2008-10-15 19:23 ` Andreas Oberritter
2008-10-15 19:13 ` Andreas Oberritter
2008-10-15 19:24 ` Steven Toth
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1221186757.2648.78.camel@morgan.walls.org \
--to=awalls@radix.net \
--cc=glenn.l.mcgrath@gmail.com \
--cc=linux-dvb@linuxtv.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox