We have a very powerful automated build process internally to compile and publish successive releases of our software application and associated utilities and libraries. This has proven invaluable during both development and maintenance.
Any software application will spend 90% of its lifetime in maintenance i.e. only 10% of its lifetime will it be 'in development' which is always at the beginning of any software project. By automating the build process during this early phase, we have ensured that future releases are easy to build and therefore the software becomes easier to both maintain and deliver to customers.
Our automated build process uses a sophisticated workflow tool which does the following:
- Retrieve latest checked-in versions of all source code
- Compiles each library in correct order
- Compile each component
- Gather correct versions of re-distributable third party libraries
- Compile full application as a downloadable smart client
- Compile full application as a terminal services setup EXE
- Distribute both applications to the web
- Compile all industry specific libraries comprising industry business rules
- Compile numerous customer specific libraries comprising customer business rules
- Distribute all industry and customer specific libraries to the web
- Compile customer specific ribbons
- Publish customer specific ribbons and user interface libraries to the web
- Send completion e-mail to development, support and some customer developers
Our current automated build time for all of the above comprising over 1 million lines of source code is around 12 minutes. We do this build on a quad-core Windows 7 machine with 8Gb RAM using Visual Studio 2010.
We also follow the Microsoft 'best practice' of building our software at least once a day so that we can always get an emergency release out quickly should a problem arise in the field.
Once our software is built, the application quickly auto-upgrades itself when started including taking responsibility for its own database upgrades and ancilliary file management. This approach was once considered the holy grail of enterprise software. Many enterprise software companies gave up and decided to build web browser applications just to skirt around this problem. Unfortunately for them, they lost so much functionality and productivity which TriSys still enjoys by using the WinForms paradigm.
At TriSys, we tackled this problem head-on, resulting is a fully cloud enabled application platform which installs and automatically upgrades native smart-client software onto customer computers for maximum usability, functionality, performance and responsiveness.