Development Methodology

Assessing the Options

The development of MobileIS and the other products and projects developed by Step39 are guided by a methodology designed by ourselves. Before setting out to produce product we first conducted an exhaustive revue of the technologies and tools available to the developer. Using our background in software development which extends from Large Blue chip organisations to small agile cutting edge businesses we set out to analyse what was available now and where in the future methods and languages must inevitably be drawn to. This was conducted without prejudice and to a simple list of criteria based on our need to produce enterprise class software within a small team.

    The product has to be platform agnostic
    The product must have a simple installation process
    The product has to be vertically and horizontally scaleable
    The product has to have 99.999% reliability
    The development process must be scaleable through individuals, small groups and to large organisations
    The development process must based economically
    The method must be ISO standard

Over a two year period we tried, tested and analysed many languages. Amongst these that attracted detailed examination were Python, Ruby on Rails, PHP, C, C++, Objective C, Erlang, F sharp, Haskell, Java and Javascript.

Why Prolog

Prolog came out as best choice. The choice of Prolog as a development language to some especially those with a background in software engineering may seem esoteric. It is in fact a very practical choice and one that enabled us to build a highly efficient workflow and subsequent exceptional reliability in the product. Prolog possesses many attractive qualities to help us develop. A Particularly exciting attribute is that Prologs is a problem solving language. This enables an iterative process in development - it helps the developer to understand the job. The resulting code is a readable design, a self documenting process which can be transferred or implemented in another language. So where a performance requirement elements of the product can be re written in C.

The Future

Data, big data, manipulating data, it's all about the data. Established software functional development processes are becoming suffocated by procedure. This is leading to ever more difficulty in the traditional development process. A fresh look at project design and workflow is needed in industry. It is because of this that we are predicting the rise of declarative languages such as Prolog.