Request a New Feature

You can help the Mifos development team improve Mifos to better meet your needs and those of MFIs around the world by providing detailed requests for new features. Follow these guidelines and instructions to submit a request.

Goals of a New Feature Request

New feature requests allow you to bring your need to the attention of the Mifos developers but, more importantly, when properly entered in the Mifos Issue Tracker they become a way of actively communicating with the development team and the wider Mifos community. There are three primary goals for new feature requests:

Provide Information - Detail is essential to a good feature request so provide as much of it as possible. The more clearly you describe the feature and articulate your need the easier it will be to develop and the more likely it is to be added to Mifos.

Earn Votes & Support - Community support determines the priority a new feature request receives from the development team. The more votes and support a request gets the sooner it will be scheduled in the product road map to be developed by the core Mifos team.

Build it on Your Own - New features can be built by developers outside of the Mifos team but it is still necessary to properly document these features in the Issue Tracker. This allows you to actively discuss the feature, receive feedback on best practices for writing code for Mifos and ensure your feature is accepted after you submit it.

Procedure

Step 1 - Create an Account in the Issue Tracker

The Mifos Issue Tracker is used to manage bug reports and new feature requests for Mifos. To request a new feature or add details to a feature that has already been requested you will need to create an account in the Issue Tracker. Refer to Using the Mifos Project Issue Tracker for more information on creating an account or go straight to the Mifos Issue Tracker and get started.

Step 2 - Search for the Feature

Before creating a new feature request you should search in the Issue Tracker to see if your feature has already been requested. This helps to avoid creating duplicates, allows you to add more information to an existing request and lets you vote for the new feature. To search in the Issue Tracker log in to your account, click on Issues and then use the search options that run down the left-hand side of the page. You will want to select mifos as the project and New Feature as the issue type when performing your search. If you find a request that matches yours you can click on it and make comments, add screenshots or vote for the issue. If you do not find a feature request that matches what you are looking for you can proceed with creating a new issue.

Step 3 - Create a New Issue

To create a new issue you will need to log in to your account in the Mifos Issue Tracker and then click on Create new issue in the upper right of the page. This will bring up a menu - select mifos under "Project" and New Feature under "Issue Type." When you have made your selections click the Create button. This will take you to the Create Issue page where you will enter the information for your feature request.

Step 4 - Provide Basic Information

The first section of the Create Issue page covers the basic information about the new feature you are requesting. Fill in this information according to the instructions below.

Summary

This is the name of your new feature and should provide a quick description. Use 60 characters or less.

For example: "Loan Payment Calculation Based on the Declining Balance Formula"

Priority

This field is only relevant to reporting a bug. Please leave at Minor (the default option)

Due Date

Leave this field blank.

Components

If you know which aspect of Mifos the new feature affects make a selection here. Otherwise, select Unknown.

Affects Versions

Select Unknown in this field.

Environment

Leave the environment section blank.

Assignee

Please make sure this field is set to Unassigned. *It is very important that it is set to this value.

Reporter

This field will automatically be populated with your user name.

Step 5 - Describe the New Feature in Detail

The Description section of the Create Issue page is the most important. This is where you need to provide as much information as possible about the feature you are requesting.

The description should be broken down into sections as follows:

Overview

Summarize the basic function of the new feature in a few sentences.

For example, an overview for a new "Declining Balance" feature might be: "This feature would allow MFIs to create loan repayment schedules with equal installments and interest based on the declining balance formula."

Background

This section is optional but can be very useful in providing context for the new feature. Here you can explain how Mifos currently handles or doesn't handle the issue and explain how the new feature would fit into microfinance methodology. The intent of this section is to help those who might not be familiar with microfinance or how Mifos currently works to better understand the issue.

For example, the background on the "Declining Balance" feature would first explain that Mifos currently only supports flat interest calculation, then it would explain what flat interest calculation is because it is an unfamiliar concept many people in the US and finally it would explain how the declining balance calculation works.

Business Need

Briefly explain, use 2-3 sentences, why the new feature is important or necessary. Use this section to get votes & support - the second goal of writing a feature request. This is your opportunity to convince the community how important your new feature is, get other implementers to support it and show the core engineering team the need to include the feature in the product road map.

For example, the business need for the "Declining Balance" feature might be: "This feature is needed for deployment of Mifos in Nepal because many MFIs use this method to calculate interest. The rationale behind this is: the simple nature of calculating interest in this way allows clients to see that the principal they are paying is actually reducing their interest."

Description

In this section provide as much detail as possible about the business processes or products and services the new feature would support as well as step-by-step instructions for how it would be used. You can write out a few different user scenarios about how this feature will be used.

Fill out as much detail as possible but more can be added later when the functional specification is written. To learn more about how to write out detailed user scenarios, refer to our page on how to write a functional specification.

Step 6 - Enter Extra Information

Many of these fields are meant for developer use. If you are uncertain about what to put in one of these fields just leave it blank or leave the default setting in place. You can however attach pictures in the Attachment section, provide links to more documentation next to URL and fill in Labels that will make it easier for other community members to find your new request.

For Labels please add the label "community" and also add the label for the country the feature is needed for.

Step 7 - Finish Creating the Issue and Keep it Updated

Click the Create button when you have finished filling in all the information for your new feature request. Once you click create your request will be added as an entry in the Issue Tracker. But, you're not really finished! You can:

Keep the request updated. Add comments to the issue with more detail or new scenarios.