Programming & Consulting
What are some of the things I can expect if I hire GabrAria to
develop my application?
When you use Excel for your development platform you need to be aware
that Excel has some features and aspects that make it easy for a novice
to very quickly develop fairly powerful applications.
Unfortunately those same features and aspects also mean that whoever is
doing the development can overlook some of the fundamentals of good
In one Excel workbook we can combine the
user interface, where people are going to key in data or make decisions
about the analysis, with the data itself, and on top of that we mix in the business logic
being implemented. The "business logic" is either the formulas
that get used, the validations that get used to make sure the data is
good or the VBA code that gets attached to the workbook as a VBA
Project. VBA is the language in which Excel "macros" are written and most
novice macro developers attach the macros to the workbook where the
macros get used. If we were to draw our application's architecture it might look something like
the Venn diagram to the right.
An "all-in-one" architecture may
serve us well if our application remains very simple and our
deployment very limited. And I have used this architecture
when it was a sensible solution to a client's needs. However, if
the application is going to be deployed across many desktops, or there
will be a need to distribute updates to code or make changes to the user
interface that would cause a user to need to port data from an old version of a workbook
to a newer, updated version then I will recommend we move to a more
advanced architecture where the user interface, the business logic and
the data access & storage are more loosely coupled. Depicted
graphically that architecture might look like the figure on the left
A loosely coupled architecture allows us to work on either the user
interface or the business logic and deploy updates to these application
components without encountering tremendous difficulties in porting data
into the updated workbooks. This would enable us to create a
solution that we could depict in the graphic to the right. This is a very robust architecture
which would allow maximum flexibility and scalability as the business grows.
An Attractive Interface that is Context Sensitive
If your project does require an advanced architecture, it would be
presented to the user via a custom ribbon tab driven by an Excel add-in.
Here are a couple of examples of custom tabs from custom Excel
applications GabrAria has developed for customers.
The application enables and disables the various custom controls based
on what type of workbook is active. Certain controls should only
be enabled when specific types of workbooks related to the application
are open. This means that the user can open any type of workbook
and the application will automatically disable any buttons that should
not work with a "generic" workbook. This keeps a user from
accidentally performing an action he shouldn't and inadvertently making
unintended changes to his workbook.
Well-Documented and Well-Structured Code
One of the challenges that comes with supporting code over the long term
is that as the programmers who wrote the code move on to new projects, they
quickly forget code they, themselves, wrote. In the professional IT
world this means rigorous documenting protocols are usually in
place in a company's IT department. In order to make sure your
project is easy to support over both the near term and the long term,
time is taken to create a good documentation trail within the project.
To start with, each module in the project contains summary information about the module
and its contents.
An additional level of documentation is standard procedure - each
subroutine within every module has a documentation header that
summarizes what the procedure does, describes any inbound arguments or
output and contains a change history documenting major edits to the
Furthermore, I code using a variation on the Hungarian Convention
pioneered by Charles Simonyi and later refined for use in VB/VBA by
Gregory Reddick. In order to help anyone else tasked with reading
the code in a GabrAria-developed application, every application includes
a module that details the naming conventions used throughout the
application, including the conventions used for defining names in Excel
With GabrAria you can rest assured that your code is well structured
and well documented making ongoing support much easier and more economical.
Sometimes, instead of having someone else do the actual coding, clients
simply need some input regarding workbook design or application design
or architecture. For budgetary reasons or other concerns the
client prefers to do the implementation in-house. If that is the
case, then GabrAria is willing to go through your project with you and
offer recommendations and insights that will help you build a better
solution using your own company's resources.