Improviware, LLC
Using computers to provide innovative solutions.

Home | Experience | Philosophy | Contact

Requirements

The first step in satisfying a set of requirements is to agree on that set of requirements. The customer has an idea of what they want but may not be familiar with the technologies available to satisfy those requirements. Improviware may already have the knowledge or know how to determine the technologies available to satisfy those requirements. Together, the requirements are negotiated until a solution is proposed.

Open source

Many times, there already exists a solution for a set of requirements. There may be several solutions available. Improviware will always favor an "open source" solution over a proprietary solution to improve the solution's maintainability, supportability, reliability, maturity, security and cost.

Tools

The tools used to satisfy a set of requirements are much like the tools in your kitchen drawer. While one can use a hammer to drive in a phillips-head screw, there are good reasons for using a phillips-head screwdriver.

Similarly, there are good reasons for choosing an operating system and/or language to satisfy a set of development requirements. While Improviware may show some bias towards those tools and/or solutions with which it's most familiar, it's breadth of knowledge indicates a willingness and ability to learn and adopt new technologies.

Eventually, all languages boil down to machine code. The only real difference between the languages are their syntax. Good developers can easily learn a new language because they understand the underlying effects and only need to learn the documented syntax. The syntax of a language is what permits the developer to describe the solution in a way that's easily understood. Ultimately, the resulting solution must be understood by someone other than the original developer.

Some languages are designed to make mediocre, undisciplined developers write code that works well. This comes with a cost. These languages can perform poorly and hobble good, disciplined developers.

All operating systems boil down to providing the same operations for applications that run over them. These operations are described by the documented API or system calls provided by the operating system. Good systems programmers can adapt to any operating system by finding the API necessary to perform the required operation.

The approach

There are a lot of useful concepts from Agile Software Development that Improviware may apply to developing your solution. Customer involvement is key. User stories or requirements must be approved by the customer after negotiation with Improviware. Small releases are developed to satisfy these requirements. Tests are also developed with each small release to allow the customer to see and validate the release. In this way, customers may see that progress is being made on the final product every one or two weeks.

Copyright 2008-2024, Improviware, LLC