Consulting Philosophies

Since we started in 1996, with the goal of providing high quality software development services, we have done more than just write software to a predefined specification. We participate in all phases of the software development cycle. We've had extensive experience in requirements gathering, application design, database design, software development in a variety of technologies, deployment and support. But this only tells part of the story. It only speaks to the tangible.

Our real success comes from getting to know our clients and their business. In fact, we have been tasked as subject matter experts on behalf of our clients and have represented their interests when developing new systems and procedures.

We treat each client as a partner and we succeed if, and only if, they do. Our relationship with our clients is the primary reason for our successes over the years. The mutual respect we develop for each other allows us to go beyond the traditional "I say and you do" relationship often encountered. This respect translates into a deeper understanding of the problems that our clients are facing and those that they will face in the future.

Managing Expectations

Don't over-promise or under-deliver.

All relationships are built on successfully managing expectations. We go to great lengths to be as forthcoming with our clients as possible. When situations change or unforeseen issues surface, it is imperative that we bring these to your attention.

It is our belief that we should provide our clients with all the information that they need, even if it isn't what they want to hear, so that an informed decision can be made.

To do otherwise, well... I believe the expression is "putting lipstick on a pig". We are not interested in this brand of cosmetology.

The mechanics of most software development are not paramount to deciding who can or should be working for you. After all, programming languages can be learned, methodologies can be implemented, and new technologies can be leveraged by most experienced professionals. The true art, if you will, is actually solving the problem put before you.

Know the Problem, Know Your Tools

Admittedly, this is a weak paraphrase of the following from the Sun Tzu:
Knowing the other and knowing oneself, in one hundred battles no danger.
Not knowing the other and knowing oneself, one victory for one loss.
Not knowing the other and not knowing oneself, in every battle certain defeat.
(The Art of War - The Denma Translation p.12)

The overarching principle behind it still applies. Our ultimate goal is to help solve the problem and provide our client with a value-added solution that helps them to be competitive and efficient. To do that, we need to know the problem as well as the tools we use to solve it.

These problems take on many forms from customer requirements to technical programming challenges to the unexpected, like remembering how the quadratic formula works. To do this, however, requires that we understand the problem at hand.

We are often presented with a situation like the following: "I'd like you to add a button to this screen and when you push it, something wonderful will happen."

To the requester, this is the problem that they want to be solved. In reality they have presented us with a solution. We don't yet understand the problem and implementing this, without further inquiry would be doing a disservice to the client.

What we have to ask is "why" they want to do this, "what problem is this request solving". This is probably the most important tool in our arsenal - doggedly asking "why" such a thing has to be done. The requester has already had to ask and answer that question, albeit informally, in order to formulate their "requirement". It is possible that they have devised the perfect solution to the issue at hand, but without understanding the underlying issue, we cannot be certain.

Without understanding it, we will be solving this problem over and over again. Always giving them what they ask for, but not what they need.

This is not without risk. I have been bluntly asked "isn't it enough that I just tell you to do it?" Respectfully it is not, and this is where the relationship building really begins. We take an interest in our client's success and in the end, understanding the problem will help us to provide a better solution and to better anticipate the problems to come.

Our experiences have provided the following benefits for our clients over the years.

Represented clients as a subject matter expert based on years of experience working on their internal financial collection and consolidation applications.

Performance and productivity improvements made for clients have led to considerable savings and forestalled the additional purchases of hardware to handle their processing requirements.

Designed a simulation to determine the appropriate prices to charge for inter-company sales of their products, thereby taking advantage of various tax-favorable situations and lowering the overall tax obligations around the world

Guided projects through all phases of the application lifecycle from requirements gathering, to long-term support.

Designed the application databases for several applications targeting Oracle, Informix, Interbase, and Firebird.

Experienced working for large and small organizations in diverse industries such as insurance, automotive, utilities/financial, and pharmaceutical/financial. Proven ability to leverage those experiences into new opportunities.

Performed application training with extensive domestic and foreign travel.