Why won't you implement this feature?

Problem

You have a feature you would like us to implement, and normally we will log it, and if the demand is high we will prioritize it. 

However we do reject features that we deem should not be in the dialer. 

Common Reasons for Rejection

The dialer is very strict on the appropriateness of features, and follows these principles. 

  1. No business logic:
    1. Scheduling campaigns: building scheduling into the dialer will actually make it take more effort to integrate the feature, and adds complexity to the integrator in that they need to sync state. Which is what we try to avoid.
    2. Prioritizing callees with certain agents: the integrator has to already determine which callees need to handle which matters, so all this would do is add serious complexity to the API with no value. Rather run per agent campaigns.
  2. Minimize impact on integrators:
    1. Very very few features that break backwards compatibility are ever implemented, because they affect all integrators. 
    2. Features should come without breaking anything.
    3. New features should be optional to implement
  3. Designing for the future:
    1. Any feature that could hamper other features or limit the architecture of the dialer will be rejected until a time when a design can be draughted that does not impact future development
    2. Thinking this way allows the project to grow past what we can only think of now, and this means less technical debt which means more stability and faster feature development over a long period.