Since 1990, Optima Systems Ltd. has actively been developing new applications for a wide range of businesses. Particular areas of expertise include administration systems, clinical data analysis and product forecasting.
Optima's developments reside primarily on Microsoft Windows and server machines but code is also running on IBM Mainframes, PDAs and smartphones.
Increasingly – and particularly in the past 5 years – the emphasis has changed somewhat to Internet-based solutions with code residing on servers and client side interactions via Internet Explorer and a zero or small footprint application running locally.
Their client list includes both large and small companies, each one having their own way of working and development styles. In all cases, Optima adopts the working practices that suit the client best whilst still trying to retain the control required to deliver on time and on budget. The main tool of choice is Dyalog, which gives great power and ability plus a development speed significantly faster than some of the more traditional (and modern) languages.
A few years ago, a solution would be provided using primarily APL as the language of choice and a programming team would consist of a small number of people highly skilled in this area. Today, with all of the technologies that tend to be applied, the solution comes from the application of many skills. For any specific project, the team has, therefore, become larger, with specific individuals responsible for specific parts of the system. This does not mean that costs and control spiral out of control; only that we all work closely together in a pragmatic way to get the job done efficiently and quickly.
One of Optima's distinct strengths is that they have a combined team of professionals who cover a wide range of skills. All of their team members have many years of experience, covering all sorts of applications in a very varied marketplace.
Graphic Design and Branding
This team is involved with all aspects of graphic design from initial logo concepts through to branding and maintenance of corporate images. Our portfolio includes a large number of household names where this level of branding control is of paramount importance.
Web Page and Interface Design
Our highly experienced team specialises in the creation of unique and intuitive user interfaces.
These interfaces are built with a variety of tools to support all types of hardware devices, from barcode readers through GPS and PDA units up to the latest web servers and data warehousing facilities.
The team have the ability to produce a web-based system that can be both simple and very cost efficient for the smaller business through to highly advanced interfaces suitable for multi-national corporations.
Most of Optima's mainstream systems rely upon some form of back-office database. These databases can be highly sophisticated, and the job of this team is to ensure that the front-end user interface can readily communicate and take full advantage of the richness of the data.
Database technologies include SQL and Oracle at one end to Microsoft Access and Excel at the other. When a specific need requires it, the team is able to develop a bespoke database using APL component files; these can be optimised to cater for fast access or large data volumes as appropriate.
APL Core System
Within many of our systems resides a core code set which can, for example, control or perform particularly complex or large calculations. Our APL programming team is highly experienced in a number of different interpreters covering both mainframe and PC platforms. Particular specialisations include financial administration systems, clinical data analysis and product forecasting. The use of the APL language gives us the flexibility to provide the required level of computing power and the ability to change code quickly to suit ever-changing requirements. Our preferred use of extreme programming techniques means that we can work closely with the target user group and produce a system that actually delivers the required functionality. This is often at odds with the documented requirements that are produced using traditional system analysis methodologies.
Administration and Support
With any company there is a requirement for administration. Within Optima is an additional – non-technical – team who look after this side of the business and provide essential customer support and backup to their services.
Services here range from essential time monitoring and reporting to account management and telephone support.
Site Facilities – Supported 24/7
Optima Systems have an impressive range of development equipment on site that covers most of their normal user requirements, but they also have many other pieces of kit that can be configured to meet more unusual demands. In their server room is an array of racks and server units that allow them to provide hosting services to their customers where needed. Their blade servers provide the technology backbone that allows them to support hosted web applications, remote backup, e-mail services and damage limitation services. They also have a synchronous fibre optic link running into their offices which provides significant bandwidth and speed to supported web-based applications. More than 200 businesses currently use these services in one form or another.
One important part of Optima's portfolio is the network support facilities they offer to their customers. Although geared to their smaller customers, they provide a wide-ranging support package to clients who need additional advice and help keeping their internal systems running efficiently.
At Optima we work with all sorts of corporations, ranging from the very large to the very small. Small businesses typically have no specific development style requirements, only the need to produce the solution on time and to a tight budget. Larger corporations often have huge overheads associated with their chosen methodologies – but they will still have tight budgets and time-lines.
We work with all of our clients in a way that suits them best and we never try to impose a working style – although we may advise alternatives.
Our experience shows that, regardless of company size, the methodologies adopted fall into one of two categories: Waterfall or Agile.
Most large companies that we deal with operate a Waterfall style of project management. This means that the whole process is very heavily dependent on documentation, administration and a large number of people who are not directly connected with producing the result. In addition, the business and developer are kept apart, leading to errors in understanding and missing functionality.
Overall costs tend to be high, and often the project will overrun on a number of markers. Assuming, however, that things run to completion, the eventual solution is usually well documented and supported, but future changes/enhancements tend to be expensive and time-consuming to implement.
The waterfall approach is often applied to large, complex projects that require a high degree of mental agility just to understand all of the ramifications. There is a consequential problem of describing such a complex process or set of processes in documentation; trying to encompass the whole picture up-front and getting it right is doomed to failure and takes much time and budget.
Senior management are often happier with this approach, as all aspects of the implementation are closely controlled and costs can be monitored to the penny, but error levels, functionality mismatches and bugs occur at a similar level to more pragmatic methodologies.
The Waterfall approach is very rigid and often very costly, but these costs are easy to visualise. The project cost line typically rises steadily over a medium to long period of time until implementation, when the solution starts to deliver the business benefit. Assuming that this benefit can be represented in pure monetary terms a net profit will be realised sometime thereafter. This profit may take many months or even years before its effect is truly seen by the business. Sometimes the arrival of a net profit never occurs before the solution is decommissioned in favour of a new approach or the business adopts new practices as a result of, for example, a reorganisation.
A methodology that we have adopted with great success over recent years is Agile, which is derived from the extreme programming groups and has been written about at length. This approach has been slow to be adopted by many large corporations as it sits outside of their normal comfort zone.
With Agile programming a large project is broken down into a number of small, tangible sub-projects, each of which can be easily visualised and comprehended. Each sub-project is worked on in turn, with an eventual longer-term goal always in mind. These smaller tasks each have a time line to be implemented in and, importantly, each provides tangible benefit to the business.
Over time these smaller projects are worked on and delivered in such a way as to demonstrate actual progress and profit back to the business. Since each sub-project is smaller and easier to identify with, the project team can be smaller and more specialised so as to meet the immediate need. The developers typically work alongside the eventual user group to ensure that what is delivered is what is actually required.
Experience shows that a total solution can be delivered more quickly and that project profitability is realised much faster.
In addition, should/when the business requirements change, the Agile approach allows such change to be implemented quickly. In the case of financial administration systems where the requirements are very dynamic, we have seen the impact of such changes as being almost insignificant to the overall project cost and delivery timescales.
An added advantage is that, due to the involvement of the users in the development from day one, buy-in by them is greatly improved and rework due to misunderstandings during the design phase reduced dramatically.
Documentation is produced as the system is developed which, combined with test harnesses that are developed with the code as it is written, reduces the project development time even further.
Experience shows that one week of agile programming can equate to several months of an equivalent Waterfall build.
In a recent build for one of our major clients we reduced the process time from over one hour to just a few minutes, reduced staff training to use the system from in excess of six months to less than one day and provided the first phase of this system to the business within four weeks of starting. Prior to our involvement no progress had been made due to the quoted expense of providing a similar system using the waterfall methodology. In this particular case, and by utilising APL programming styles carefully, we found that after a short period of time the users (none of whom were programmers) were able to view the code and point out where logic mistakes had been made! This ultimately made for an immensely powerful combination of business knowledge and programming experience, which is very hard to achieve in many other environments.
We estimate that the result of using the Agile approach has saved our clients hundreds of thousands of pounds and, in one case, probably millions of pounds over the time the system has been in production.