[asterisk-dev] About asterisk development plans
John Todd
jtodd at digium.com
Wed Mar 18 14:26:56 CDT 2009
On Mar 17, 2009, at 11:58 PM, Olle E. Johansson wrote:
> 17 mar 2009 kl. 20.32 skrev Jon Bonilla (Manwe):
> [snip]
>> Once again I should apoligize if someone misunderstands my words. I
>> just am
>> willing to know what the goal of this project is. If it's goal is to
>> be a
>> ready-for-production-environment PBX, I think it should focus on
>> stability much
>> more.
>
> This is a very important discussion that I'm glad that you bring up.
> It is indeed
> very boring to fix bugs and test, test, test. The Digium team surely
> focuses a
> lot on bug fixing and testing, much more so today than a few years
> ago. I think
> we all agree on the goal. The big question is how to get there. Will
> more resources
> help? Is there a methodology problem in the testing done? Is the world
> too
> complex for Asterisk to live in? Help us.
>
> We do need the community to step in and work on this alongside with
> Digium.
> We need the community to take a more active role in managing Asterisk
> and not
> leave it to Digium. Digium is doing more than their share. Asterisk
> needs the
> community taking responsibility.
[snip]
I've been reading the replies to this thread, and I'll put in some
observations and possible solutions. The community around Asterisk
has grown tremendously in the last several years, both from a user
perspective and a development perspective. A few thoughts that I
formed while reading the thread:
1) Complexity has increased. I believe this is the inherent nature of
telephony software. Asterisk started out with a few fairly crude
features, but now people are asking (demanding!) that it perform more
difficult tasks. This implies creation of fairly significant new
complexity structures to support those demands, and increases the
difficulty of implementation. This is not a bad thing - it is very
_good_ that Asterisk is becoming more complex, because it is able to
address more of the concerns that larger installations have, and also
now fills many more "niche" solutions than previously. But this comes
at a cost.
There is always a conflict between stability and features, and
between simplicity and flexibility. There is a relentless push to
make Asterisk more feature-rich, and flexible for all possible
circumstances in which it is installed. This decreases simplicity,
and makes a higher load of bugfixes.
2) Companies are seemingly less willing to contribute back. There are
dozens, if not hundreds of companies that use Asterisk as a core for
their products. Only a tiny handful are active participants in
keeping Asterisk advancing, or fixing bugs. Quite a few will send in
their developers (under anonymous cover) to report various bugs, and
then they are adamant about the speed of repairs being insufficient.
The willingness of these corporate users to test anything other than
their exact problem is also practically zero. This is not a situation
unique to Asterisk - most other software that becomes heavily-divested
has the same situation until the really large companies involved in
open source contribution start putting in resources. I'd be
interested in hearing how the current problems of contribution
reluctance can be solved, as none of the few ideas I've considered
have gained traction thus far.
3) A regression test does seem like an idea whose time has come. We
have had soul-searching decisions like this before - the conversion to
SVN, the installation of "configure" files (wow, remember the tearing
of hair over that one?), the shift to features_, and others. But
perhaps now is the time for a "make test" concept.
The difficulty with this is not to be understated. Both Olle and
Murf weighed in on this thread with the overwhelming complexity of
testing something like Asterisk. This is not something that will be
done overnight, and on some parts of the software I expect it will
NEVER be done. However, clearly there is a need for some sort of more
formal tests. Each app/function/channel/res will probably have to
have its own test plan.
It seems the easiest way to create a regression test of Asterisk is
to create a test plan with another Asterisk system. To mimic user
behavior is not, in my opinion, an impossible task. While I believe
analog/digital interfaces are important, I would suspect that most of
the behaviors that would fall into a regression test would be testable
entirely via IP channels, and in fact it may be possible for two
instances of Asterisk to operate on the same machine, one testing the
other.
These tests are not simple, and require some pretty serious
scripting capabilities. Many (most?) could probably even be done
directly in the dialplan, with some external database triggering tests
and tabulating expected results via ODBC. AGI and AMI would be
exceptions to this, but again would not be impossible. As mentioned
by Peter, it may be possible to automate the tests entirely via AGI
and AMI, also.
The description of 1:3 ratio of coding to test-jig creation is
fairly accurate from a time perspective. It's 1:3 the first time the
code is written, and then any changes after that point might be
somthing like a 1:.05 ratio since rarely are changes to the test jig
required. Since Asterisk is mostly written, we're looking at a fairly
ugly time investment to get a test jig created. Starting small is
certainly going to be the first step.
I'm pleased to see this produce another thread, and any replies to
this section of this message should be added to that threadline.
4) Some mention was made expressing concern over the priorities of
features vs. stability. I would suggest looking at the bug tracker
to anyone interested in examining where Digium's priories are. Digium
staff spend a staggering amount of time and energy on fixing bugs and
getting Asterisk in all forms as stable and usable as possible, and
this comes at significant cost to Digium. Nobody likes to do boring
stuff like test patches and fix minor nits, but that is in fact what
is the majority of the time spent at Digium working on Asterisk code.
Olle and others send out requests for bug testers all the time, but
there remains a serious shortage of people willing to test bug fixes
or even new features.
There are certainly new features that keep coming out - to exclude
new features entirely and concentrate 100% on bugfixes would lead to a
stagnant and ultimately failed project. Digium staff and community
members work jointly on both bugfixes and features, using priority
systems that they alone can determine. The vast bulk of the work
right now is on creating an error-free system that provides the
functionality that has been demanded by the user base.
JT
---
John Todd email:jtodd at digium.com
Digium, Inc. | Asterisk Open Source Community Director
445 Jan Davis Drive NW - Huntsville AL 35806 - USA
direct: +1-256-428-6083 http://www.digium.com/
More information about the asterisk-dev
mailing list