Ohm Systems' software production capability spans the full system development lifecycle including
Project Management, Analysis and Design, Development and Testing, and Implementation
Our project management practice follows standard, time-tested principles for ensuring that projects are managed to consistently achieve your business and technical objectives. We work with you to understand and define your needs with respect to project scope, delivery time, quality standards, and available budget.
We assess your project portfolio to classify projects in groups as defined by their similarities in order to achieve economies of scale in terms of managing, measuring and comparing outcomes. Next we deploy our portfolio of best practices that are based on those industry-standard methodologies that our experience has proven to produce the best results throughout the software development lifecycle.
With that groundwork in place, we then proceed to implementing those management approaches that are best suited for each project group. Indeed the most essential part of our PMO practice incorporates our understanding of various project management methodologies, and knowing which method or custom combination of methods will be best suited for achieving your objectives.
We apply our expertise in task, result and outcome measurement for each phase in the software development lifecycle to closely analyze the performance of project teams, their individual contributors, as well as our own program management efforts in order to identify opportunities to improve the planning, organization, directing, and other activities we engage in. We pride ourselves in delivering top quality management services tempered by an open and approachable attitude that enables us to quickly discover issues, identify responses, and adjust our course accordingly to advance the processes we employ.
Business requirements definition has become an Ohm Systems specialty because we are aware that most IT project failures are directly attributable to ineffective requirements development. We have carefully studied what works, and know what it takes to identify, communicate and implement successful IT solutions. Our experience has taught us the fine points of eliciting requirements from existing systems, subject matter experts, on-the-ground users, as well as state-of-the-art alternatives to produce a framework that effectively provides a blue-print for how to get from where your process is to a system that most truly reflects where it needs to be.
At your discretion, we can present requirements using formal UML modeling standards, or as use cases, user stories or process specifications. For many of our projects, we have adapted Agile software development techniques to a unique proprietary business analysis approach that essentially presents requirements in the form of tightly structured use cases written in the active voice. Actions are numbered in a strictly defined step-wise way that makes usability comparisons accurate and easy. And processes are presented in a flexible matrix that enables the requirements to be effectively re-used for corresponding source code documentation, test scripts, user manuals, troubleshooting guides and other useful and critical software development lifecycle deliverables.
We define requirements in a way that enables them to be manageable, traceable, easy to reprioritize, testable, and re-usable across later phases in the lifecycle. We can deliver requirements in a format that best suits your needs ranging from a tightly defined third normal form database to a more loosely structured document. Or we can deliver your business requirements in a spreadsheet that balances a pre-defined structure with the flexibility to easily incorporate new elements on the fly as required while retaining useful analytical, filtering, relational, sorting and systematic traceability capabilities.
At Ohm Systems, we actually use IT to do IT, and the resulting artifacts of our efforts are an order of magnitude more useful than the traditional "write-it-in-long hand" approach that requires technical staff to visually and manually dig through text to find what they need to know to do what they need to do.
We know that often software development projects are measured not just in terms of what gets produced, but how it gets done. So we match our application development approach to suit your requirements. We are prepared to deliver superior results using a variety of methods. We can provide the extensive documentation and tightly-controlled management by following a strict Waterfall model. Or if your project success hinges on the fast delivery that Rapid Application Development methodologies provide, we can employ Iterative Design, Prototyping, Scrum and other Agile techniques. Right from the start, we work with you to determine and manage deliverables and timelines to ensure success on your terms.
Our software development experience ranges from simple brochure-ware web site development through complex e-commerce systems, enterprise process automation, mobile applications, and others. We deliver solutions using the platforms, tools and technologies that are best-suited to your needs.
Our testing approach is executed in parallel with the software development effort utilizing the latest systems engineering principles, state-of-the-art automation, and proven process improvement methods to ensure successful, reproducible test strategy implementations. We have embraced a risk-based, test-driven development approach that empowers us to develop tests which focus on key functionality, critical output and desired outcomes to ensure the most effective and thorough deployment of your test investment.
Our Verification Engineers produce their best results by first "testing" the existing requirements, design and other documentation. During this process, we develop use cases, test strategies and test scripts that will enable stake-holders to visualize and simulate outcomes in order to identify functional, usage and other improvement opportunities before the application development phase begins. This effort tends to always result in improving the requirements, and often identifies issues that can be addressed before the later phases of the project when it becomes much more expensive to make necessary changes.
Developers can then re-use the results of this effort to effectively guide their work during the coding, integration, development and implementation phases. Then Validation Engineers can later re-use these forward-thinking test scripts to assess outcomes, measure results, and certify that systems meet requirements and produce as designed.
Our methodology employs the most useful and practical aspects of the IEEE Std 1012 - 2004 Standard for Software Verification and Validation, the Carnegie Mellon Software Engineering Institute's Software Capability Maturity Model Integration (SEI CMMI), and the intuitive sense for risk points, bug trapping, and teasing out trouble-spots that our testing professionals have developed by working with a number of applications and technologies.