development.erikmartin.com
Erik Martin

Welcome!   Below you can find the most up-to-date version of my resume in all the common formats.  Existing clients can log in below to access current and prior deliverables (executables, documentation or source code), calendar of deliverables and availability, as well as the most recent daily copy of code in development. 

Frequently Asked Questions:
Q. How does the development process work?  What can we expect?
A. The progression of the project will generally follow the following steps:

1. Defining the Functionality.  One of the most crucial parts of a project is accurately understanding and defining the system requirements.  If you have any written specifications, that will usually be the starting point.  From there I will ask questions to flesh out the details, and pursue whatever other methods as dictated by the nature of the project .  If there are different classes of end-users who will be using the system, it's important to get them involved in the process, so I can understand the needs and expectations of everyone involved.

2. Design and Estimate.  I will work up a detailed functional specification, and probably come up with some additional questions for you in the process.  Once complete, I will send you the full specification, including a detailed itemized estimate, and a proposed delivery schedule.  At this point, after you make any desired changes (for instance, there may be some features that we discussed which you decide you want to put off to a "version 2"), we can both sign off on the plan.

3. Development and Deliverables.  I will deliver prototypes of the system according to the aforementioned schedule, which will be designed to get you new functionality as it's developed, early and often.  This will keep us on the same page throughout the process, and if there is ever a need for a change in direction, this will help us to catch it early in the process.  It is your part to look at the deliverables and verify their acceptability.

4. Additional Documentation.  Following acceptance of the final software delivery, I will provide whatever additional documentation or training is required.  This requirement varies greatly depending on the nature of the project.  User documentation is a common requirement.  All source code will be clear and well documented, however if the project is extremely large or complex, it is sometimes desirable to have additional "technical documentation" to serve as a roadmap for future developers.  I can also provide initial training for your end users or your help desk.

5. Support.  After the project is complete, I will remain available to handle any support issues, such as fixes, enhancements, or subsequent development phases.

Q. What backup and recovery procedures do you have in place?
A. I use industry standard version control software to maintain a complete version history of all sources.  All source code is automatically checked in nightly, if not more frequently, and the entire archive is then mirrored to an off-site colocated server.  Clients can log in to this server at any time to download the most recent source code from the previous night's update, as well as copies of all existing deliverables.  My entire development hard drive is also mirrored nightly to a redundant hard drive in my development machine, meaning that in the event of a hard drive failure, I have only to boot up from the redundant drive, and pick up where I left off, virtually without interruption.

My development machine is also protected from code loss due to power failure by an Uninterruptible Power Supply.  My colocated server is protected by all the power supply, connectivity, climate control, and security measures one would expect from a state-of-the-art data center.

Q. How do you charge? What do you charge?
A. I can charge either by an hourly rate or by a flat price. Your advantage in opting for a flat price is that I take on the full risk of the accuracy of the estimate, and you know from the start exactly what you are paying for each component of the system.  Your advantage in opting for an hourly rate is that it provides you with greater flexibility to add to or alter the design at will, without requiring changes to the formal estimate, and generally allows for a more flexible, less formal process.

My rate varies depending on the approximate length of the project and current market conditions.  A sample range is between $65 and $85 per hour.

Q. Aren't there advantages to using a larger software development company?
A. In my experience a larger organization has no advantage of over a competent, reliable, and creative individual, and does have significant potential for disadvantage.  It takes a lot of work and insight to mitigate the effects of bureaucracy, to provide a continuity of thought across different roles, and to ensure competence throughout those roles.  When it's all done right, it can in theory provide an experience similar to what the competent, reliable, and creative developer can deliver.  However, the reality lies somewhere between that and this famous commentary on software development reality. 
Q. Is that a triple-monitor in your picture?
A. Why, yes it is.  My monitor is composed of three 1600x1200 panels syncronised into a single desktop.  (Which is incidently the same configuration that Bill Gates uses.)  I believe that anyone who gets paid to develop software should be using at least a dual monitor.  The cost in productivity to develop software development on a typical mono monitor over the long term is orders of magnitude higher than the cost of dual monitor. 
Contact me at development@erikmartin.com