One of the challenges, that many startups face, when it is time to bring ideas to practical implementation, is the creation and management of the development environment. Many projects we have been privileged to be associated with have usually three major components that may put them on the road to success.
This phase of the project defines and prototype the form factor of the devices enclosures and mechanical components such as motor, pump, gears and many other possible components of the final device. It also defines the spacial real estate that will be reserved for the electronic of the device. Various electronic boards may have to fit in small spaces of various shapes.
Hardware Design and Prototyping
This phase of the project defines the hardware components used to create the electronic of the device. It entails the creation of functional bock diagrams, schematics, components layout.
The hardware design resulting from this work, usually will exist initially in a prototype development board or set of boards depending on the complexity of the problem to solve.
A proper Software development requires an healthy environment and infrastructure.
As many software projects, unfortunately, start with some prototype or demo code, the danger for this project is to keep this initial effort as the product itself.
This is usually a recipe for disaster.
Let us examine the proper steps for a sustainable development environment.
The infrastructure of the software development consists in the use of a set of tools.
The actual mixture of required tools depends, naturally of the specific requirements of the project.
In all projects there are a common minimum set of tools we recommend to use.
Here is a brief list of those indispensable tools.
- Source Control System
- Document Repository
- Code Editors
- Test Instruments
- Product Software Requirements.
- Software Architecture Definition
- Hardware Abstraction Layers
- Test Infrastructure.
- Logging Mechanisms.
- Data Acquisition and Storage.