There are common components to one or more development environments. A development team needs to choose a right mix of tools focussing on areas where tools help gain efficiency. For example a developer dealing with a database for storing small amounts of temporary data in a small/fast efficient MySQL database need not worry about full-blown schema editor. A device driver writer doesn't need to work on usecase UML diagrams.
Rapid development environments are kind of different for:
1. Enterprise Java (LAMJ)
2. Perl Scripting and/or LAMP
3. C/C++ Server Side Developer (Unix/Linux)
4. Embedded/Kernel/Device Driver Hacker
5. KDE/GNOME GUI Application Programmer
Although many prefer to use vim/emacs alone.
The various portions of the development environment some of them more useful to some environments than others
1. Design Tools: Varying from a pencil and paper to 4GL code generators UML/XML tools.
2. Project Management: Ranging from mere task lists to IDE integrated bug/enhancement lists that appear as tasks within the IDE.
3. Configuration Management: For Binaries and Sources.
4. Compilation and Debugging Capabilities: Ability to have a pre-integrated code base with no integration phases and fast compile farms pluggable into the development environment help reduce the idle wait time for developers.
5. QA and Support process integration with the development environment.
6. Technology Stack upgradation: Open Source means bleeding edge, the problems of yesterday disappear tomorrow without a trace. Is it possible to use bleeding edge stack right from development environment to staging and deployment.
Post new comment