Open Source Software Development for Service Oriented Projects
By Philip Mark Donaghy
There is no doubt that Open Source methods are becoming the norm used by service agencies everywhere. These are the guidelines I recommend when developing using open source software. These principals will guarantee an effective development process.
Communication with Mailing Lists
A large percentage of projects fail due to poor communications. It is very important that communication is traced so that managers, developers, and clients can have the correct information at the right time.
The solution to this problem :
Use internal mailing lists to notify people of news, events and or changes that are important to the end users as well as managers, clients, and developers. Three lists should be sufficient. The client list, a developers list, and a managers list. In addition the use of public mailing lists to effectively monitor software limitations and benefits.
Modeled Architecture using UML, Object, Exchange, and Database models
Problems arise from ineffectively copying and pasting source code.
The solution to this problem :
Use models to define the architecture of the application. Model driven architecture is the most modern method of developing service oriented software. A large portion of the application can be automatically generated using Velocity or AndroMDA.
Client Workflow
A third difficulty comes from poor client specifications. The solution is to monitor the clients needs and expectations.
The solution to this problem :
Architects and developers can not effectively create service oriented applications without the technical and functional contacts with the client.
Developer Workflow
Developers are curious animals. The all have their habits and methods of contributing to a project. The most important characteristics necessary to identify a responsible developer are his or her "bonne volonté", the desire to contribute ones maximum potential toward a projects success, and his or her professional attitude. These aside, here are some simple steps all developers should follow.
Verify the stability of the source code
Notify project directors when source code is unstable
Debug
Find the person responsible for the error
Work with them to estimate the
Run regression tests
Notify project directors when regression tests fail
Debug
Find the person responsible for the error
Work with them to estimate the correction
Evaluate remaining development
Meet with project directors to discuss solutions
Language
The software documentation must use a consistent language.
The solution to this problem :
A development team often consists of many nationalities. In such a case documentation communication should be written in English.
French can be the dominant language if the clients, managers, and staff are all French nationals or master French as a second language.
Development Platforms
A final and frequent problem arises with the network services used during the development process and the cost to maintain them.
The solution to this problem :
The development platform must be composed of all elements to run the application independently of network connections. Therefore the database must be installed on the development machine. Traditional Windows machines are not practical, secure or fast enough for this scenario therefore Linux is recommended.
Source Control
Problems arise when source code is locked by other developers.
The solution to this problem :
Use the most common open source source control. At the time of this writing this is CVS, although Subversion has be recently adopted by most new and cutting edge development efforts.
Build Scripts
Problems arise when build scripts are platform dependent.
The solution to this problem :
Use the most common open source build system. At the time of this writing this is Ant, although Maven is making great strides.
As with development build scripts should modular. Meaning that one central build script calls other scripts.
Delays
Delays can be avoided only by synchronizing the efforts made by the client, managers, third parties, and developers. In order to master the planning of a project all the technical, functional, and management aspects must be mastered. At our company we strive to make this our mission. Our contracts describe the exact solution and its implementation along with the time to delivery and the cost.
No comments:
Post a Comment