Software Development Services
Technical Expertise Delivered with Creativity and Integrity
Meeting Your Outsourcing Needs
During the execution of a software project, it's relatively common for the needs of the project to exceed the capabilities of the development team. It may be a matter of limited time, personnel or expertise. So outsourcing specific software development tasks may be appropriate and should be considered. Yet experienced managers understand that outsourcing these tasks sometimes risks trading one set of problems for another. Managers have legitimate concerns as to whether the contract developers they hire are competent, whether interactions with the permanent in-house team will be positive, whether the work will be cost effective, and whether intellectual property rights will be respected. Consequently, managers considering outsourcing are often left with a dilemma.
Breaking Dilemmas the Common Sense Way
We can break a client's dilemma regarding outsourcing by:
- Delivering on our commitments competently and conscientiously
- Working in a cost-effective and time-sensitive manner
- Solving problems while avoiding the creation of new ones
- Working effectively, amicably, non-competitively and non-intrusively with in-house teams
- Respecting our clients' intellectual property, and always working with integrity and honesty
We ensure that these conditions are met through actions that are effective and are sensitive to the needs of our clients. For example, in order to deliver consistently on our commitments, we restrict our focus to areas where we have specific expertise. When we do work in new areas, we tell the customer this is a new area for us, and we build sufficient buffer-time into the schedule to account for the necessary learning curve. Another way in which we ensure delivery on our commitments is by making sure we always have the capacity to complete any work we agree to complete.
Our ability to create positive outcomes while avoiding the creation of negatives follows from our having a deep understanding of our clients' needs as well as our own. Additionally, we have the relatively unique ability to recognize and resolve dilemmas in a clear and logical way. In fact, this is one of the primary skills we teach in our training programs.
Common Sense Expertise
In order to serve our customers well, we focus our software development consulting on the following areas where we have particular expertise.
- Embedded software development
We are experts in embedded software development. We can contribute to systems design, provide custom firmware design, implementation, integration and testing. We have experience with multiple embedded operating systems, including VxWorks, WinCE, embedded Linux and others. We are also experienced with embedded debugging, tool chains and hardware/software integration. We offer extensive experience with in-circuit emulation, and development on 8, 16 and 32 bit micros.
- Software tools
We are experts in software tooling, including all of the tools normally associated with software development. We are able to develop custom tools in any language, and we have particular strength in Perl, Python and Tcl. Over the years, we have built many tools for customers, including tools such as unit test frameworks, performance measurement (profiling) systems, and specialized debugging mechanisms for difficult-to-diagnose defects in embedded code. We can also build tools to help software managers obtain metrics on the performance of their development teams.
- Web-based infrastructure
We have the ability to design, develop and deliver web-based infrastructure for specific applications. These tend to be highly specialized applications, rather than consumer-oriented applications. For example, we have built web-based applications that manage software builds, product regression testing, and tracking test documentation and results. When we build web applications, we typically work with an existing portal (content management system) such as Plone. We also have experience with web applications built on the LAMP (Linux, Apache, MySql, PHP) stack.
- Software component development
We also have the ability to design, implement and deliver specific software components. We can also maintain your existing components. We have experience in most conventional programming languages and even in some less well known programming languages. So, whether your software needs are large or small it's virtually certain that we can be of genuine service to you.
We have the knowledge, experience and communications skills required to do an outstanding job for our customers. We are experts in object-oriented analysis and design, as well as the so-called agile methods.
Service Details
- Common Sense software development is billed on a time and materials basis. Please contact us for a quotation.
- Development work may be done at your site or at our Woodinville, WA, facility.
- While we often work with other software engineering service providers, we never outsource work without our clients' knowledge and consent.
- We invoice for work twice monthly on the 1st and the 15th of each month.
LEGAL NOTICE: All software developed by Common Sense Systems, Inc., is provided on an as-is basis and carries no warranty of fitness for any purpose. Under no circumstances will Common Sense Systems, Inc., be responsible for any damages or claims resulting from the use of software it has developed.
Want to Learn More? Contact us by phoning (425) 806-8744 or e-mailing us at inquiry@common-sense.com.