20 abril 2009

An Agile Development Environment

An Agile Development Environment



All agile methodologies preach delivering working software early and continuously. To achieve this an automated development environment is beneficial. It is also important to get a new project up and running quickly. To this end here is a suggested development environment made up of open source tools along with instructions for getting up and running.

Server Machine

  • Use your perfered operationing system: Linux, Windows, etc. These instructions will be some what specific to Windows.
  • Two gigs of RAM, a dual processor, and a fast harddrive are the minimum recommendations.
  • Install Java 5 or higher: http://java.sun.com/javase/downloads/index_jdk5.jsp

Source Control Management



The first thing you will need on your development server is version control. SVN is the tool of choice!
Next you want to install Apache HTTP Server to access SVN remotely.
LoadModule dav_svn_module modules/mod_dav_svn.so
    • map the location

DAV svn
SVNPath c:/svnrepos


On the client machines you will need Subclipse and TortoiseSVN.

Continuously Integration Build System


Now we need to install Maven and create your own corporate maven repository.
  • Download Maven
  • Unzip to a desired location
  • Add the bin directory to your system path
  • Add the following to your httpd.conf file
Alias /maven2/ c:/WINDOWS/system32/config/systemprofile/.m2/repository/
Alias /maven2 c:/WINDOWS/system32/config/systemprofile/.m2/repository

Options Indexes
AllowOverride All
Order allow,deny
Allow from all


Next we need to install and configure Continuum to automate your builds.
  • Download Continuum
  • Unzip to a desired location
  • Add the following to your httpd.conf file
ProxyPass /continuum http://localhost:8091/continuum/
ProxyPassReverse /continuum http://localhost:8091/continuum/

Alias /working-directory/ c:/continuum/working-directory/
Alias /working-directory c:/continuum/working-directory/

Options Indexes
AllowOverride All
Order allow,deny
Allow from all


Note that you will need to add the and sections to all of your pom.xml files.

Database


For running junit tests the Hypersonic in memory database is excellent. It can be downloaded automatically by maven. To demo your applications to your customers MySQL is a great choice.
  • Download and run
    • mysql-essential-4.1.21-win32.msi
    • mysql-gui-tools-5.0-r3-win32.msi
  • Download and place in your app servers lib directory
    • mysql-connector-java-3.1.13.zip


Application Server


To get up and running fast with JBoss AS + Portal you can start with the Taylor Tracker Bundle. It is preconfigured with various JBoss components. Just unzip it to the desired location. You will want at least two servers configured: QA and PM. The QA server will be used for running all your automated test cases and for demonstration to your customer. The PM server will run various project management and collaboration software like Taylor Tracker, JBoss Wiki, and JBoss Forum, etc.

Client Tools


On the client side us Eclipse. More information is available on the Taylor Installation page.


That is pretty much it! It is also a good idea to ghost this configuration so that you can stamp out new servers as needed. And don't forget to setup a backup schedule for the SVN repository and the MySQL database.

No hay comentarios: