Background

Based on our experience from customer assignments we know approximately the effort required to develop, deploy, maintain, and expand an application:

 

How much work does it take to develop an application depending on the scope/size of the application?

 

How much of a previous application can be reused for a new customer with the same application, e.g. if you have developed an application for mobile phone self-service how much does it take to add support for another mobile phone or another mobile phone operator?

 

How much work can be reused between similar applications, e.g. if you have developed a travel support service with timetable information for a bus company what is the work involved in porting that to a train company?

 

What is the effort to port a successful application in one language to another language, e.g. from Swedish to German.

 

As a measure of the scope we have used the number of entities necessary for an application. As an example a travel information application contains entities like ticket, seat, departure time, arrival time, date, etc. Each of these entities may have many terms attached to them (i.e. an airplane might be referred to as a plane, an airplane, an aircraft, etc), and you can ask a very large amount about these entities of questions formulated in almost any correct way.

 

The breadth and nature of the questions (or commands) an end-user might want to ask depends, to a very large degree, on the application and on the end-user’s situation. Consequently the numbers presented here are only indicative and constitute no commitment from Dialogue Technologies. More precise estimated for a specific project can be provided on request.

 

We have used the assumption that Dialogue Technologies does all the application development throughout this document. It is perfectly possible that a system integrator, or the customer himself, does all the application development. After training, we expect similar results as those presented below. Software tools and manuals are available to support the customer in this.

Model application and pre-requisites

It is the intent of this document that it can be used for assessing a range of different applications. For this we have used a model application, which is a customer self-service application. The service is web-based and the end-users or customer service operators are invited to ask questions about how to use a product or service in plain language and get accurate answers to their questions. The size/scope of the application is assumed to be 10, 50, 150, and 500 entities. As a base line for our comparisons in this document we use the 150-entity application, which is a relatively large application. Linguistically we support questions/commands like:
”List all flights from Stockholm to London.”
”Show me the cheapest ticket to London.”
”How do you set up the wap browser?”
”How do you make an international call?”
”How much money is there on account 123456?”

We measure the work effort in weeks of work for a full-time (40h/week) employee.

Amount of work as a function of application size

We have estimated the amount of work to develop a first application as a function of the number of entities for 10, 50, 150, and 500 entities. The result is presented in the figure .

 

Conclusion: The amount of work involved in building an application initially grows with the number of entities. Bear in mind that 500 entities is a relatively large application.

 

Bild1

Learning curve for a first standard application

We have estimated the amount of work to develop an application with 150 entities without reusing any previous application. We assume that each development project starts from scratch, with nothing but previous experience. The result is summarized in the table below.

 

First Application Tenth Application

Total project lead time

13 weeks 11 weeks
Total project effort 54.9 person weeks 45.2 person weeks
Dialogue Technologies effort 34.4 person weeks 28.2 person weeks
Customer effort 20.5 person weeks 17 person weeks

 

Conclusion: After ten applications we expect a 20% productivity improvement for developing a new application from scratch.

Learning curve for a similar application

We have estimated the amount of work to develop an application with 150 entities, which is similar to an earlier application. A typical example would be to develop a travel information application for a train company, based on an existing travel information application for a bus company. The result is summarized in the table below.

 

First Application Similar Application

Total project lead time

13 weeks 8.5 weeks
Total project effort 54.9 person weeks 25.7 person weeks
Dialogue Technologies effort 34.4 person weeks 15.6 person weeks
Customer effort 20.5 person weeks 10.1 person weeks

 

Smaller changes to an application are referred to as revisions and require anything from a few hours for a re-compilation of the application and a small regression test to a few weeks for expanding the application. For e.g. a mobile phone support application the strategy would be to build an application supporting the bulk of questions for the first model and expand the model as new models and manufacturers are added, thus using the same application for all mobile phones. For features that are support by Dialogue Technologies’ application but not by the phone itself the system simply returns an answer to that effect (e.g. if the specific phone does not support Bluetooth but Dialogue Technologies’ application can answer questions about Bluetooth the system returns the answer “Bluetooth is not supported in this phone, see our model xyz instead”).

 

Conclusion: Reuse of similar applications results in a 50% reduction of the work effort and a 35% reduction of development lead-time. For almost identical products/services a single application developed incrementally over time could be viable.

Effort for porting a successful application to another language

We have estimated the amount of work to transfer an application with 150 entities from one language (e.g. Swedish) to another language (e.g. English). The result is summarized in the table below.

 

First Application Same Application
Different Language

Total project lead time

13 weeks 5.5 weeks
Total project effort 54.9 person weeks 18.3 person weeks
Dialogue Technologies effort 34.4 person weeks 11.3 person weeks
Customer effort 20.5 person weeks 7.0 person weeks

 

Conclusion: Porting a successful application in one country/language to another language is done in little over a month’s lead time and requires a third of the initial development effort. We expect further improvements of this for porting to additional languages.

 

Development activities

 

The model project for 150 entities consists of the following activities:

Pre-study

Lead-time: 2 weeks

Activities: In cooperation with the customer the scope of the application is defined. Sample questions used for developing the application are identified together with the data repository containing the answers. A project plan, requirements document, project organization, steering methods and quality criteria are put together.

Staffing Dialogue Technologies: 1 expert, 0.5 project leader, 0.5 IT systems engineer

Staffing Customer: 1 customer service responsible, 0.5 IT systems engineer.

 

Application development, 1st iteration:

Lead-time: 4 weeks

Activities: Based on the database tables used in the application and the scope of the application a domain model is built for the application. A first version of the data repository is built together with a test environment. The user interface is developed together with any adaptations of the host environment.

Staffing Dialogue Technologies: 0.2 experts, 0.2 project leader, 2.5 programmers, 0.5 IT systems engineer

Staffing Customer: 0.5 IT systems engineer, 0.5 programmers, 1 editor
Test, verification, and validation, 1st iteration:

Lead-time: 3 weeks

 

Implementation, test, verification, and validation of the application. Error correction.

Staffing Dialogue Technologies: 0.2 experts, 0.2 project leader, 2 programmers

Staffing Customer: 0.5 IT systems engineer, 0.5 testers, 0.5 programmers.

 

Release for internal/limited use:

Lead-time: 1 week

Activities: Installation and activation.

Staffing Dialogue Technologies: 1 expert, 1 systems engineer, 0.2 project leader

Staffing Customer: 0.5 IT systems engineer

 

These figures are not included in the summary below, because they carry uncertainty in whether there should be a limited release and are critically dependent on the target environment.

 

Application development, 2nd iteration:

Lead-time: 2 weeks

Activities: Development of a second version of the application, user-interface, and interfaces to the host system. Refinement of the data repository.

Staffing Dialogue Technologies: 0.2 experts, 0.2 project leader, 2 programmers

Staffing Customer: 0.5 IT systems engineer, 0.5 editors
Test, verification, and validation, 2nd iteration:

Lead-time: 2 weeks

 

Activities: Implementation, test, verification, and validation of the application. Error correction.

Staffing Dialogue Technologies: 0.2 experts, 0.2 project leader, 2 programmers

Staffing Customer: 0.5 IT systems engineer, 0.5 testers, 0.5 programmers.

Release for external use:

Lead-time: 2 days

 

Installation and activation

Staffing Dialogue Technologies: 0.5 expert, 1 systems engineer, 0.2 project leader

Staffing Customer: 0.5 IT systems engineer
Refinement:

Lead-time: not applicable

Activities: As a result of feedback from users of the system activities can be divided into two categories. Bug fixing, which is part of the ordinary product support activities, and extensions to the application.

Staffing Dialogue Technologies: To be determined

Staffing Customer: To be determined

 

Evaluation of the application

Lead-time: 3 weeks

Activities: Collection of data and customer response. Reporting the findings. This is a separate activity and is not included in the summary below.

Staffing Dialogue Technologies: 1 expert

Staffing Customers: 1 customer support responsible

 

These figures are not included in the summary below.

 

Summary:

Dialogue Technologies:                                            4.2 expert weeks

3.2 project leader weeks

24.0 programmer weeks

3.0 system eng. Weeks

TOTAL                                                                        34.4 weeks

 

Customer:                                                                    2.0 CSR weeks

6.5 IT sys. engineer weeks

4.5 programmer weeks

2.5 tester weeks

5.0 editor weeks

TOTAL                                                                        20.5 weeks

 

Total lead-time for the project: 13 weeks.

 

Distribution of responsibility

Dialogue Technologies are responsible for developing, installing and supporting the application. Dialogue Technologies also assists in the integration of the application in the target environment and in running the test phases.

 

The customer is responsible for providing the data used to answer user questions, integrate the application in the target environment and to run the tests. The customer is also responsible for providing the target IT infrastructure (hardware and software).