Our current implementation of software development processes is as illustrated above. It is a simple, but yet comprehensive approach to adopt the Rational Unified Process, and Agile process. The roles for each part are as illustrated above. The responsibility of each role is taken from RUP. Each process produces versioned output, and they are saved into the version control. Project Manager and Architect determine the releases. Periodic release in the form of builds are carried out nightly using the autobuild system. Because of continuous build, tester will test new features and run the automated testing everytime a new build is released. Once the build is stable, it is labeled and baselined.
During the past few years, we have developed many application systems. Learning from our experience, we are now focusing on the problems and solve it right away. With the rapid recent developments in the web and internet landscape, our development technology quickly diminish its values. That's why we need to embark on a new quest to quickly change and adapt to the new environment. Our current implementation takes advantage of several open-source systems. We have a set of repositories containing the latest updates / developments from the source. The repository automatically update itself when a new released is found in the target server.
We started our development using simple tools. As a matter of fact, all we need to start with is the notepad and Java Development Kit. Once we got ourselves oriented, we move towards database connection encapsulation. We got our understanding on the behaviours presented by Hibernate and quickly build the front-end connection to the web using Spring Source toolkit. As we got more developers, we have arrange ourselves to use a management tool for communicating with the management on the progress, as well as managing the requirements. As of now, our tool set includes the followings:
- Eclipse - Integrated Development Environment.
- Maven & ANT - to build and compile, as well as managing the source code locally.
- IBM Rational Team Concert (RTC) - to manage team development; task assignments; time-sheet management; as well as reporting tools.
- IBM Rational Functional Tester (RFT) - to perform automated testing against daily builds using pre-defined scripts generated by tester.