Developing sharp software  
Home
Free Downloads
Articles
Free advice
Fun tests
Project quotations
Employment
Services
Support
Contact us
About us

A typical project at Acuit

First meeting
When clients call us to discuss the possibility  doing a project for them we usually meet to discuss the basic scope of the project.  During such meetings we talk about the end product, the value to users, the market, and sales methods and volume.  That gives us a good vision of how the product will be used. We don't feel as though we can effectively develop products without knowing these kinds of details.  Have this foundation, we then seek to understand what our role as developers and project managers is.  Sometimes we discuss costs and our development processes which include our unique web based method of project management.

Leading up to the project
There are often many discussions of availability, product features, cost and delivery during the time leading up to our actual involvement.  We make ourselves available at no cost for such meetings.  We also communicate using email and telephone.  We sincerely want what is best for our clients even if doesn't include our involvement on certain projects.  Our philosophy is that if the client really needs us, we'll be there to help.  We won't push ourselves into projects the client can do themselves or other are better skilled for.  Why do that?  It only makes people mistrust you.  It's not a good thing to do.

During our discussion of money we take the position that relationships are always more important than money.  We will almost always choose the former over the later.  If a client feels they are being cheated by our fee structure, them maybe they are right!  It's a delicate issue that requires us to be sensitive to.

Developing a Specification
This is a really hard thing for a lot of people.  People are just not accustomed to spending the time to write a detailed description of what they intend to build.  The problem stems from the belief that they can "see" it all in their minds-eye, and that since they can "see" it all, there is no reason to expend the extra energy to write it down.  After all, that's a waste of time, and time is money, and nobody has a lot of that to burn.  People want to jump right in and start the implementation at once.  Some people need to see progress immediately or they begin to feel as though the developers are incapable of delivering the final product.  They also assume that if a long period time elapses right up front then the product will be late.  But are those things really true?  We don't believe so.  Therefore we always write a specification document before writing any code.

When we write a spec it is really just a matter of identifying all the unknowns, and documenting the entire product, even if the product is simple in nature and features.  Our clients are almost always amazed at how many things they didn't "see".  The act of documenting your ideas always uncovers issues and things you didn't originally think of.  The very act of writing something down uses entirely different mental capacities of those used in conceiving of an idea.

Sometimes we separate the process of writing a specification into a separate project.  We will sometimes bill the client for this work alone.  This helps them separate the two processes and see the value of the written document.  This is also the time for brainstorming ideas and concepts, then solidifying them into a workable product.  The last thing you want to do is brainstorm and idea, go off and implement it, then realize it wasn't the best idea after all.  Then you are back brainstorming again.  A very inefficient process!

One of the many valuable byproducts of a finalized written specification is that you can create a project schedule directly from it.  That leads you directly into the implementation.  Everything just flows from that.

Project commences!
Well off we go - with spec in-hand!  Often times Acuit developers are chosen as project managers or lead developers.  The particular skills we poses often suggest or dictate that role within a project.  We will often spend a bit of time looking down to the end of the project and forecasting and communicating events to come.  What kind of events naturally take place in these kinds of projects?

Infrastructure setup
Every software product needs a predictable and repeatable build environment to be really successful.  We set up such environments right at the beginning.  This includes a build lab, web projects, source control, developer projects, and a delivery plan.  All of this infrastructure gets put into place right away, and we use it to develop the product.  This makes betas, milestones and the final deliver a snap!

Milestones and checkpoints
Everyone knows that software products go though various stages of Beta before release, but what do those milestones mean?  And why do we have them?  Primarily the purpose is to "test release" a product.  We'll talk about that a little later.  At Acuit, we generally have a "First Look",  Beta 1 and 2 before ship.  These milestones have different significance.

"First Look"
A First Look is a way for the developers to show the product to users and management for the first time.  It is a point in time where the product "lifts off" for its first flight!  Everybody gets to have a look-see, and everybody gets to make their comments on features and usability.  This fledgling often gets a lot of abuse!  Suddenly everyone has an opinion about how it ought to work.  That's good.  This changes are incorporated in to the next phase of development.

Beta 1
The first beta is a natural stopping point for quality assurance.  The product is usually at a very stable point and is usable by a wide variety of users.  All the features suggested from the "First Look" are either incorporated, set aside for future releases, or canned.  The user interface components are all in place and generally usable.  There is often a strong push on the part of developers just before a Beta to ensure that the product meets these general goals.  The product is now ready for field usage.

Beta 2
This product is nearly a shipping product.  There are no new features to be added or considered.  The product has reached a strong quality position and almost shippable.  The program will be considered a candidate for release soon.

Localization and "Simship"
Before releasing a product there is often a phase where the development team needs to consider how the product will be translated for use in global markets.  Sometimes companies ship a product to U.S. markets simultaneously with other global markets.  This is called "Simship" or simultaneous ship.  It requires that the product be translated into various languages before the U.S. version even ships.  There are variety of challenges connected with this that beyond the scope of this discussion.  At Acuit, we work closely with a localization company to develop localized versions of our software.

Release Candidate and Gold
As the product reaches the point where it meets quality expectations it becomes a candidate for release.  We all sort-of stand back and say; this product is ready for release.  It has become a Release Candidate or RC1.  But is it really, really ready for release?  Sometimes not.  Sometimes jsut after you declare it done, you discover one or two issues you feel you need to resolve before releasing the product to manufacturing.  If you find such and issue in RC1, you naturally advance to RC2.  This process allows you to step back and breath before releasing the product.  This act of stepping back puts you into a new mode of objectively viewing the product as the user sees it.  If you release before this little phase then you are bound to make a mistake or two.  And the end user ends up suffering.

Acuit is very serious about quality and users simply will not stand for buggy software.  These are some of the processes that are necessary to ensure quality.  You've simply got to bake the product fully, with no shortcuts, or you will reap the consequences.

It's funny how some developers view bugs.  If your software sometimes fails to work or crashes you put up with it, and reboot, but if your radio doesn't work right you take it back to the store.  Users are beginning to adopt that philosophy with software!

Service, Support and Warrantee
Acuit developers stand behind the code they write.  We offer support to our clients that ensures that they are never left without a fix for their customer.  Oftentimes we negotiate for a warrantee period where Acuit will fix any bug discovered within a certain time period.

Good vibes and future work
We certainly hope that our attention to detail and insistence upon delivering quality make our customers happy.  In fact we know it does.  That is why they keep coming back!


Also see: About, Projects on the web

Web inquiries to: Webmaster
Copyright ©
2001 Acuit Development, Inc.
All rights reserved