SOFTWARE DESIGN
Customizing a GIS software program requires both an intimate knowledge of the end-result, or application to which the system will be put, and sound principals of software design. Since GIS software development has tended to originate in the natural and engineering sciences, rather then in the computer sciences, the tools available today represent a curious history. Having successfully designed custom software solutions which have tied together as many as nine software packages at a time. We specialize in designing customized GIS systems.
EXPERIENCE
System Mock-up
Developing a user interface "mock-up" is very useful for communicating the concepts of a custom software package to the stakeholders. Ordinary people find it challenging to design a custom software solution, but find it very easy to criticize it once built. An early mock-up can help give stakeholders something to react to, s a way to contribute to the design of the system. It is also a good way to ensure that the client and developers are "in synch" in their thoughts about the system. Mock-ups only look like real software, unlike Proofs of Concept, which may have some programming "guts" behind the "pretty pictures".
Proof-of-Concepts
A Proof of Concept, versus a System Mock-up is a conceptual core of the proposed system, with some programming "guts" behind the "pretty pictures". More specifically, form buttons actually activate other forms and sometimes other functionality. The main purpose of a Proof of Concept, beyond the aims of a System Mock-up, is to test some of the riskiest concepts behind the proposed design, to make sure that they work. These are the components that if they fail to work as conceived, would cause a significant rethinking in the design of the project, or even the cancellation of the project itself. We design Proofs of Concept that supply sufficient validation for the design, without overwhelming the budget at the early stage of the project.
Prototypes
A Prototype is a step beyond in the proof of a project's viability, only in this case, the whole core of the system is actually implemented. A Prototype lack "frills", but is sufficient for testing and gathering of user comment, as is meant to test stability and performance of the core software. A Prototype should not be confused, however, with the final implementation, which will include full functionality, and documentation and training.
Flow Charting and Code Module Design
In addition to software design, we have occasionally gone deeper and flow charted software modules, or created code module and class library design, to be executed by others. This is usually done as part of a software development team, where we might be embedded with a client's development staff, or where the actual coding is outsourced.
Software Evaluations
We are called upon to assist organizations in assessing software offered to them by vendors or developers. Often, the software might be software that is meant to integrate with GIS in some way, as a client, a server, or peer software. In such cases we assess the compatibility of the other software with the client's GIS infrastructure. We take into consideration how spatial data will be exchanged, whether the other software can act as a client or server to the GIS, rather than as a mere data-exchanging peer. We look for operating system and development environment compatibility, and sometimes for the ability to integrate user interfaces and eventually documentation as well.
User Manual and Help File Design, Writing, and Editing
We have accepted the task developing user manuals and online help systems for custom or commercial software, or for the compilation of user training manuals. Outputs have included HLP and CHM help files, PDFs, PowerPoint presentations, WebHelp systems, and commercially printed user manuals.