Google Website Translator Gadget

Friday, 14 January 2011

Pragma On Key Software Development Environment

As I mentioned towards the end of last year, we delivered an important Release 3 milestone of Pragma On Key V5.  We are currently working hard to further improve the application performance and to fix the remaining bugs with the aim of going live with a big international customer 1 March 2011.  For those unfamiliar with PRAGMA and On Key [Source]:

PRAGMA is a global engineering company providing physical asset management improvement services and products to our clients. We believe that the most important value derived from our service is peace of mind. A client's CEO and his production or service team can focus on delivering their own client promise, whilst we, along with the in-house maintenance team, take care of optimising the performance and longevity of their assets over the life cycle of those assets.

Pragma On Key is our homegrown Enterprise Asset Management System (EAMS). Apart from the traditional functionalities generally expected from an EAMS, it has a variety of sophisticated modules that allow the client virtual and real-time access to asset information.

We are based in the beautiful Cape Town, South Africa and we have customers across a wide spectrum of industries in South Africa and also overseas. 

We currently support two major versions of On Key:

  1. Version 4 – A Windows forms client/server application that runs on top of SQL Server as DBMS.  The application was developed using Delphi and has been in production for quite a few years already.
  2. Version 5 – A new web-based solution architected as a RIA application.  It uses Silverlight as presentation technology and a layered server architecture using .NET 4.0 on top of SQL Server as DBMS.  

Both versions support interfacing with other ERP systems like SYSPRO and SAP via custom interfaces that we build.  In addition to rewriting a lot of the V4 features onto V5, we also added some really nifty new features to provide our customers with great flexibility in managing their physical assets.  In V5 we also started creating a SDK that allows third parties to build additional services on top of the core On Key application platform.   

Besides these cool features in On Key itself, we have also IMO come along way in creating a solid software development environment within PRAGMA.  The team closed to doubled in size during the last 3 years (we are now 22 people) and we simply had to mature our SDLC practices.  There are of course still a lot of areas where we can and will improve on, but I think we have a good foundation to build on for the future.

I want to start a series of blog posts where I write a bit about our software development environment - reflecting on the work environment, what tools and development practices we use and also areas that we want to improve on in future.  I also want to spend some time writing about the design of some of the core features within On Key.   I don’t quite know how all of this is going to pan out and how many posts I am going to create, but off the cuff, here is a short list of areas that I want to cover:

  1. Work environment – Team Composition, Office Space, SDLC (Scrum), Typical Sprint…
  2. Development Tools – Source Control, Build Server, Wiki, Work Item Management…
  3. Development Practices – Check-in procedure, Code Reviews, Coding Standards, Code Analysis (Static/Dynamic), Code Generation, TDD…
  4. Build Automation – Versioning, Continuous Integration, Continuous Performance Testing, Build Pipelines…
  5. Testing – Automated Functional Regression Testing…
  6. On Key Architecture – Client Architecture, Server Architecture, Localization, Exception Handling, Logging, Security…
  7. On Key Features – Rule Engine, Validation Framework, Background Tasks, Rollout, Synchronization…

This list is quite long!  Time permitting, I’ll try and keep posting on some topic hopefully once a week.  Till later…

1 comment: