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.
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.
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.
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.
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.
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"
This field is only relevant to reporting a bug. Please leave at Minor (the default option)
Leave this field blank.
If you know which aspect of Mifos the new feature affects make a selection here. Otherwise, select Unknown.
Select Unknown in this field.
Leave the environment section blank.
Please make sure this field is set to Unassigned. *It is very important that it is set to this value.
This field will automatically be populated with your user name.
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:
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."
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.
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."
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.
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.
- Discuss the item on Mifos mailing lists. Sign up to use the Mifos-users Mailing List or monitor the issue with Issue Tracker Notifications.
- Build it yourself. Write out the functional specs by following the Build a new Feature topic in the Mifos Wiki or find a technology firm to build it. Just be sure to follow best practices in writing Mifos code.