Software on over 1 million desktops worldwide: commercial
and custom
A Microsoft Gold Certified Partner
Can handle any size project
Reliable, robust and cool software
Located in Washington State
Cares about your satisfaction!
Full service software development shop
Satisfaction guaranteed
In business for over 13 years
Serving public, private and government sectors
No licensing fees
Countless satisfied clients
Tometa Software, Inc., offers software solutions and strategies
nationally through complex custom programming, consulting, and complete off-site
software development. Tometa remains tightly integrated with their client’s
IT staff and management while providing guaranteed software applications. The firm, headquartered in Eastern Washington
since 1990, works with both government and commercial organizations.
How we do it
Every project, of course, has different requirements and different results.
The process of developing custom software, however, tends to follow a few well-defined
steps. Smaller projects will typically follow these steps more or less in sequence.
Larger projects, on the other hand, are almost always broken down into smaller
business modules, each one of which will follow the development sequence independently.
Even though they are treated as discrete steps, often the steps themselves will
overlap. All of the steps are equally important. One of the hallmarks of a quality
development effort is that the proper amount of time is spent on the "non-coding"
steps. Unfortunately, under tight deadlines, many inexperienced developers will
frequently jump right into writing code, without giving proper consideration to
gathering requirements, design, and sometimes even testing.
It is important to understand how these phases fit together, and what the roles
of the client and the consultant typically are. While every phase of development
requires the involvement of both client and consultant to some degree, establishing
requirements requires the greatest participation by the client, while the development
phase typically involves the least.
There are two common approaches to application development. The more traditional
is known as the "waterfall" method of development. In this approach,
the steps are tackled one by one, in order, and there is no backtracking. Requirements
gathering is followed by analysis, which is followed by program design, and so
forth. While in principle, this strict ordering of steps simplifies the process
and makes it easier to track one's progress, in practice it is often too restrictive
in not allowing for cases in which the requirements are either likely to change,
or are poorly defined at the start.
Since the waterfall method has been shown to be unrealistic for many projects,
most large or complex projects today are typically built using some sort of "iterative"
method of development. In this approach, the steps are still done in order (at
least initially); however, not only is modification of the results of earlier
steps allowed, it is expected. For example, program design may demonstrate some
essential features that were left out of the requirements, causing the development
team to revisit that step. Even with an iterative approach, however, some control
must still be maintained over the development process to ensure that the effort
still moves forward.
We combine traditional object-oriented design, iterative rapid application development,
and thorough deployment methodologies to deliver highly effective, reusable, and
maintainable software applications. We follow a systematic and step-by-step methodology
for all our solution and software development. In our development methodology
we first follow our clients' defined processes and methods, and then incorporate
our own internal process steps wherever they are appropriate, with clients'
approval. In the absence of clients' defined methodologies, we present a draft
of methodology to be followed in a project and then get approval from our clients.
The main objectives of following a methodology is to make the development cycle
as efficient as possible, to complete development within the lowest possible cost,
keep the highest quality, and achieve the fastest turn-around. Another important
objective is to make future maintenance easier and faster. The development cycle
for each and every project is in some way unique, depending on our clients’
requirements and their unique operating environment.