When it comes to software quality, the buck stops with source code: every logical error, omission, and false assumption present in your code will manifest itself sooner or later in the form of strange behavior, system crashes, poor usability, and numerous other user turn-offs. Bad software affects every aspect of your customer relations, including whether or not to do business with you, their perception of your brand, and what they tell friends and colleagues about your company.
We perform static code analysis on software systems of all shapes and sizes, including web sites, back end software, desktop software, embedded and real-time applications. We inspect for proper software design, security, appropriateness of the languages and technologies employed, complexity and performance, incorrect code, incorrect logic, testability, conformance to best practices, and many other metrics. Aside from assessing quality, we can help you protect your organization’s trade secrets by securing your application and identifying patentable and copyrightable material.
Prolifogy code reviews are executed by software industry veterans and widely recognized Ph.D. experts in software engineering. We notice things that software development teams don’t notice. We detect problems that no automated bug detection software can detect. In short, there is no substitute for expertise.
There are numerous reasons to conduct a code review, including the following:
- Internal quality control – “grade our work”
- Due diligence in connection with purchase or sale
- Improve user experience and brand image
- Identify incorrect code or undefined behaviors
- Determine conformance to industry best practices
- Litigation discovery and pre-litigation analysis
- Security review
- Identify patentable technology
- Identify possible copyright/patent infringement
- Identify and resolve bugs, slow performance, or excessive memory consumption.
Scenario 1: Customer Quality Complaints
Even though you held code reviews and budgeted ample time for testing, end users still complained of countless bugs and performance problems ever since deployment into production. Runtime performance was fast during testing, but embarrassingly slow in the field. Additionally, one particular bug ended up corrupting production data. This reflected poorly on your team and caused lost profits, for which you will be held accountable.
Incorrect software behavior tends to be attributable to the same common types of programming errors and omissions. Although code reviews and quality assurance measures cannot guarantee perfect code, Prolifogy experts can use cutting-edge methods to review your team’s work with a critical eye and catch problems that most automated tools, test cases, developers, and casual observers cannot.
Scenario 2: Legal Discovery
Your company is involved in a bitter lawsuit with a competitor. The parties are accusing each others software products of intellectual property infringement, including copyright and patent violations. Your company needs to find specific potentially infringing behaviors in the competitor’s source code during the discovery process. The court has imposed a short discovery schedule, so fast and accurate work is therefore required. Additionally, your side needs counter the claims asserted against its products.
Prolifogy experts are skilled at searching through a large forest of source code to find specific structures and functions buried within. We can assist counsel with determining facts, formulating opinions and arguments, and providing accurate testimony. When it comes to defending infringement claims against your company, Prolifogy’s experienced and credentialed experts can assess the arguments presented and use their knowledge and experience to assist counsel and the court with arriving at the truth.
Scenario 3: Usability
A customer recently selected an item to purchase from your company’s web site after seeing that it was in stock. After choosing to complete the purchase, the problems began. Upon processing the order, an order validation check determined that the item wasn’t in stock after all. The payment information had already been collected and the credit card charged. The web site reported a vague error to the customer, but the order was ultimately lost. The customer called to complain, but received no satisfaction when your team couldn’t acknowledge the problem, let alone fix it. With no answers and nowhere else to turn, the customer ultimately filed and won a credit card dispute, leaving you with an angry customer, a bad review, no sale, and merchant chargeback fees.
Usability rarely receives the attention it deserves, as it is often treated as a second-class citizen to bugs. Many high-profile applications have demonstrated themselves to be alarmingly unusable under certain conditions. Few companies bother to keep track of those conditions, instead opting to wait for the customer to experience a problem and take the time to complain. Since not all customers complain, your company is exposed to an arbitrarily high rate of customer dissatisfaction. Prolifogy experts can inspect your project’s source code for potential usability problems and help you identify problematic scenarios before they occur in production. We can also help you implement error reporting solutions so that your customers won’t be stranded with nowhere to turn.