Home > About
Machelett Software & Consulting specializes in software engineering and lifecycle management of complex, networked systems.
We cover all aspects of the software lifecycle:
- requirements gathering and analysis
- estimation and progress control
- system specification and design
- design verification and validation
- test design and implementation
- configuration management
- quality control and test execution
We adhere to the highest quality standards and provide rigorous project management, proven throughout our longstanding experience on international projects.
We offer calculable costs, reliability and controllable progress. Our knowledge of tools and methods is comprehensive. Pragmatism, combined with a true devotion to software engineering is our way to create impeccable results -- over and over, and over again.
Consulting and project management
Productivity is the result of process. The ability to apply the proper process needs to be learned. It does not come naturally with most of us. We will help you in managing your projects, in managing them optimally. We can support you, whether you are initiating a project or have one already under way.
Together we will create:
- clear project visions
- stable, measurable and complete requirements
- precise interfaces
- efficient project management structure
- reliable effort estimates
- quality assurance plans
- aggressive risk management schemes
Errors are a good thing
We love to find errors! No error that we help you find will be found by your customers. We like that concept. It is very rewarding. Even more gratifyingly, errors give us the opportunity to improve process.
You might ask: Where is the connection between a solitary error and process?
It is quite evident: Errors do not just pop up, coming from nowhere. They are created, created by human beings, myself, you or the guy who is on vacation right now (it is his fault most of the time).
Seriously, none of the people who make mistakes and create errors are to blame. To err is human and should never be critized. What it really tells us is that somewhere in the development process a gap exists. Part of the process either encourages the creation of the error or prevents its timely detection.
We are curious. We investigate and research until we can point our finger at the source. And then we do not merely fix the error but we also patch the procedural safety net that should have prevented it in the first place. We can now be confident that an entire class of errors will not come back to bug us. A good thing.
If the reason for an error was lack of familiarity with a programming language or one of the tools in use, we need to provide training, designate a senior engineer as coach or improve the code review process.
If the error was created through ambiguous requirements, we need to find a method or tool that will improve consistency and clarity.
If we find out that the source of the error lies in system design, we have to find ways to verify and validate our design in earlier project stages.
We will not rest until we know what went wrong and why. Every error, every human mistake will eventually, permanently, improve the development process, will bring us one step closer to our goal: