Scala Systems logo

Rapid Application Development

In the current economic climate, there is often a premium on quantity over quality.  Being the first to market with a new technology can make or break a project.  This often results in software that is rushed to the point that design flaws or bugs find their way into release code. 

While this presents an unavoidable trade-off, we believe that it gives us a competitive advantage.  We don't hire entry-level programmers.  We don't use rapid application development tools.  We don't paste together widgets or code snippets from various sources. 

Instead, we give each project the analysis and planning it deserves.  Our experienced and expert engineers put the effort into creating a relevant, robust and extensible architecture for each project.  Our effort into the initial design phases results in reduced effort in later development stages and a better - and quicker - end result. 

Transparency

A well-designed system shouldn't have a lot of magic going on inside of it.  The software design should mirror the problem to be solved, so that an end-user would have no surprises if he or she looked at the code structure.  The structures and algorithms should be obvious and simple on a conceptual level. 

When computing was young, variables were known by storage location or two-letter names.  This deficiency in programming languages resulted in lack of transparency - only those with inside knowledge could make any sense of the software.  Modern, object-oriented, languages not only allow real-world variable names, but also enable data structures, algorithms and design concepts to have real-world analogues.

Transparent software takes more time and skill to develop, but is vastly more valuable.  It is more robust.  It is more extensible.  And it is more understandable, especially to non-technical people. 

Code bloat

Bloated software is the result of poor design.  We take extra effort to avoid repeated code or excessively complex code.  A smaller solution is usually a better solution in speed, complexity, and maintainability. 

We don't add libraries or widgets that have a lot of dead wood.  Instead we select software with an eye for compactness.  While end users may not notice an extra megabyte in their code, we find that bloat diminishes performance - and is easy to avoid. 

Software tools

Powerful new technologies are being invented constantly.  How do we choose which tools to adopt? 

Lacking a reliable crystal ball, we follow these guidelines:  Select tools that are standards based - avoiding the monopoly trap.  Choose mature tools with broad acceptance.  Choose fewer technologies and use them to their fullest extent.