Views
1 Recommended Development Tools
Software engineering/development/programming is difficult. Experienced developers have a quiver full of software tools at their disposal to aid in complex day-to-day tasks. Mifos developers are no exception.
After you have your Mifos development workstation set up with required tools like Java and Ant, you're probably ready to install something besides your trusty text editor to assist in code development.
In general, the Mifos team enforces maintainability of source code via coding standards, code reviews, and other process-oriented, people-oriented tools. That's why none of these software development tools are required. But they may make your life easier.
1.1 Goals for Mifos development tools
Ideal Mifos development tools are:
- cross-platform: should work on, at least, Windows, GNU/Linux, and Mac OS X
- feature-rich
- extensible
- stable
- low-overhead: memory and CPU requirements should be reasonable
- FLOSS: Free. This helps reduce the barrier to entry for developers worldwide by guaranteeing tool availability, and helps avoid vendor lock-in.
1.2 IDE
An IDE makes common tasks like version control, searching, code generation, refactoring, and reformatting all available within one monolithic application.
1.2.1 Eclipse
The IDE used by most Mifos developers is Eclipse. Eclipse meets all the goals of Mifos development tools.
1.2.2 EasyEclipse
If you are looking for an IDE with more out-of-the-box power features, the team recommends EasyEclipse Server Java. This Eclipse derivative comes bundled with many useful plugins for Struts, Spring, XML, version control, database browsing, and much more.
1.3 Database Development
1.3.1 SQuirrel SQL
SQuirrel SQL is a FLOSS and feature-rich IDE for working with databases. SQL and Hibernate querying are supported.
1.3.2 Source Revision Control
1.3.2.1 Subversion
Mifos uses subversion for revision control of source code. Get Mifos source code.
Svnmerge is used for merge tracking with Subversion.
1.3.2.2 Decentralized Revision Control
Commit rights to Mifos are available to only a few developers, and the changes are accepted from non-committers in patch form. A lot of uncommitted code has to be maintained while you are creating a patch.
For this purpose, decentralized revision control can be used to commit changes locally until you are ready to submit a patch for inclusion into the Mifos source repository.
SVK is such a tool which helps make a Subversion repository decentralized. More information on SVK.
1.4 Load Testing
Use JMeter.
1.5 Screen Sharing
Dimdim works great for screen sharing (also known as "pairing up").
1.6 Hosted Services
Some development tools are hosted somewhere and shared by entire engineering teams including development, QA, test, project management, and others. The "host" is simply a computer somewhere that is generally powered on and plugged into the internet year-round.
Examples of hosted services include, but are not limited to:
- issue tracking
- continuous building
- mailing lists
- live chat
- source code version control
- source code changeset viewer
- project management
- schema browser
- general project content
1.6.1 Goals for Hosted Services
In addition to the general goals above, there are some additional goals to consider when choosing hosted services:
- integrates cleanly with existing hosted services
- changes to content are version tracked
- content is indexable by robots of all major search engines
- content is available on a "publish/subscribe" basis (think RSS feeds)
- high availability and quick recovery from outages
2 Non-Free Tools
The Mifos development team generally advocates the use of FLOSS development tools since this reduces the barrier to entry for developers worldwide by guaranteeing tool availability and helps avoid vendor lock-in.
However, Mifos recognizes that certain jobs may be difficult or impossible without using non-FLOSS tools. If there is a strong justification for use of a non-FLOSS tool, please feel free to add it to Non-Free Development Tools.
| subtopics: |
