Backgroud img1 Backgroud img1

Developing Custom Software
for 25 years

× imgPreview

Development process

I typically follow general steps in process development. Depending on the size and required features, certain phases can be skipped. The typical process comprises of steps:

  1. Initial problem evaluation
  2. General requirements assessment This includes:
    1. business and technical requirements,
    2. customers’ understanding of the problem at hand, technical skills,
    3. financial, time and resource estimates.
  3. Feasibility analysis (given constraints identified earlier)
  4. Identification of unclear, contradictive, or misleading requirements

All the above steps are considered as a prerequisite to come up with a doable project plan. If there is a mutual agreement between the vendor (me) and a customer, we are probably on the right track to develop an application that would satisfy the customer’s needs.

Developing and testing of code

This step is similar to the process described on the methodology page. This step involves several code release cycles, customer review, testing, bugs, and requirements handling.

Vendor agreement

Depending on the nature of the project and technical requirements, we can handle business in several different ways:

  1. Hourly billing. Hourly billing approach is suitable for projects they are mostly driven by the customer. Such requirement typically involves a short-term need for technical skill, not available internally. Hourly billing is also a suitable basis for the initial stages of the project when resource and timing requirements are not understood.
  2. Per task billing. When a specific task is properly scoped, it is possible to provide more specific estimates. The vendor can commit to a fixed price and delivery date based on such estimates.
    If a task is large in scope, it can be divided into smaller deliverables, billable upon delivery. Typically, there is a written acceptance document signed by a customer.
  3. Per problem solved billing – this is a more complex type of arrangement when the vendor commits to the delivery of the whole solution. This kind of agreement typically comprises several steps, described above. Typically used when vendor’s skills, knowledge, know-how, equipment, or tools for a software development provided by a vendor are the basis for the provided solution.

The abovementioned arrangements are fulfilled when the customer accepts created application, personnel is trained, and the customer can use all application features to its needs.

Once completed, the customer should carefully consider his long-term needs for possible process changes, vendor support in case of system failure, or business growth that triggers the need for a more advanced solution.

Very basic needs or provisioning for an unforeseen situation can be covered by the warranty-like period clause.

The closing phase of the project should also include discussion about licensed technologies and customers' options to do modifications on his own or ask another vendor to do so. Typically, the customer owns the data, and there is no limitation to expand the existing solution in parallel to the existing one. However, changes in the current structure can break existing functionality.