Possibly the most important aspect of any software project is Architecture. Architecture
is much bigger than implementation, languages, specific patterns, database or techniques, or even
choice of specific technologies. As long as your architecture is right, you should be able to
switch these choices with little effort. Need to support mobile devices in addition to Windows and
Web versions of your app? The right architecture will enable you to quickly adjusts your technologies!
Architecture is longer lived than anything else in software, and architectural mistakes are among the most
costly to make and one of the main reasons that software projects fail.
We can help you with your architecture. We have a lot of experience with various types of
software architectures, and can help you to choose the correct one for your scenario. We make
heavy investments in testing new software and technologies, while programs are still in their
infancy so that we can then advise you based on extensive real-world experience.
Whatever you do in your software project, whatever technologies and platforms you choose, no
matter what vendors or staff you go with, the first order of business has to be to get the
architecture right. Failure to do so is costly! We can't tell you which
mobile device platform will be the most important five years from now, or which database technology
is going to be the best, but we can tell you how to architect your system to have the greatest
chance to adapt most easily and flexibly (or whatever your primary goal may be).
Starting an Architecture Project
Architecture is generally not a project in itself; it is the starting point for a whole project or
system. Many architecture sessions start with a short meeting or a Vision & Scope Workshop to determine
the overall goals of the project, the size of the effort, and best approach. The Vision & Scope also
includes an evaluation of resources that play an important role in not creating the right architecture,
and creating it in a way that allows for productive development and a desirable rate of progress throughout
the project. We then often move on toward creating key pieces of the architecture, which includes a Proof
of Concept or Prototype phase. We also create documentation such as "developer guides" of "style guides"
that enable all project members to function to the best of their ability. In many cases, we also perform
training and mentoring sessions to ensure that everyone on the project is up to speed.
Project Life-cycle and Development Approach
Initial Architecture sessions are usually relatively small. They are not overly large in terms of time frame, nor
are they very large in terms of the number of people involved. Architecture is not labor intensive, it is
knowledge intensive! The phase of the project during which big architectural decisions are made usually
consists of a number of meetings, the creation of documentation, diagrams, and even prototypes or similar
small development tasks. Usually this happens in a series of meetings with specific goals being defined for
the next meetings. Note that architecture is not something that is just done at the start of a project
and then never revisited, instead, architecture is an ongoing process, although the many critical architectural
decisions are made early in the development phase, however often the the key is to delay the decision until just in
time for development, and this is where we can help you the most!
Our Services are typically billed on a time and material basis.
We will give you an estimate up-front, but we do need to
talk with you about your specific requirements before we can
give you an estimate. Please contact us for your free consultation and estimate.
We offer our services in a variety of ways to meet every possible need. Options range from plain time and
materials setups, to hourly blocks and montly service contracts, and sometimes even fixed price setups
(especially for mobile "apps"). Contact us for more information and for a Schedule of Fees.
Please call us for a free consultation so we can help you decide on what services you will require.
Our normal business hours are Monday through Friday, 9am - 4pm MST