Independent Code Review
Why engage independent code and project reviewers?Are you finding that a project is running over time and over budget? There are consistent complaints about software crashes, memory leaks and poor performance and your staff seem to be spending all their time fixing errors rather than progressing forward. Do you feel that the project is spinning out of control, or you just need to know where you stand? The chances are that you would benefit greatly from having an independent review of your code and project.
Object Craft have a combined total of over 50 years experience in working in application development and can provide you with an honest and thorough appraisal of where your project stands and what could be done to improve it.
Feel free to contact us to discuss how we can assist in best leveraging your investment in software development.
Symptoms of projects where code review would be advantageous
- Significant cost blowouts in the testing cycle
- The application is unreliable and crashes consistently for no apparent reason
- Poor performance - application runs slower than expected, decreasing usability
- Components of code becoming too dependent on the programmers who created them
- Poor revision control
- Unexplained memory leakage
- Security holes
How Object Craft can help you with your software project
Improve your source code
Object Craft brings over 50 years software engineering experience,
ensuring that your source code conforms to best practice:
- Code must be simple - complex code is prone to bugs and unmaintainable
- Highly cohesive - maximises the ability to reuse code in multiple projects
- Loosely coupled - new features and enhancements can be developed cost effectively
- Defensive programming strategies - increase stability and security of software
- New code must always be consistent with the software
architecture - short term quick fixes are a false economy which
multiply the expense of future features.
Analyse the use of your source code repository
Software development with many developers working on the same code
can be a minefield. Object Craft can ensure that your source code
repository is being used correctly and to maximum effect. We bring
our expertise in development using CVS (Concurrent Versions
System), extending CVS to enforce development and release
procedures. We can assist in efficient and painless migration to
CVS including establishing best practice release procedures.
Software will be optimised to maximise business benefitWe recognise the importance of the trade-off between memory, CPU usage, performance and development cost to the business. I.T. does not operate in a vacuum, therefore we will analyse your project and identify the areas that, when optimised, will maximise the commercial benefit.
Exception and error handling
If things do go wrong, software must generate errors that make
sense so that issues can be solved efficiently and effectively.
Exceptions should be handled and escalated appropriately.
Is your application secure and safe?Security isn't something that can be added into an application after the fact but a code review can highlight areas where implementation has drifted out into wider application code. That makes auditing the code difficult and changing security policies onerous because the code isn't localised.
Having worked with a range of secure systems, we can both identify and advise on how to manage security as well as audit code for risks and holes.
Ensure portabilityYour application should not to tie you to certain systems or hardware. Where that isn't possible, system and hardware dependent components should be isolated so that they can be replaced without interfering with the the core of the application. Separating and isolating these components enables you to upgrade hardware and systems in the future, safe in the knowledge that the development required will be independent of the application's core functionality and has minimal impact because of the limited scope where change is needed.
DocumentationObject Craft can examine and analyse documentation to evaluate whether the system is adequately documented so that other developers can work fruitfully on the project without undue assistance from the original developers.
We can also advise on ways of developing documentation that supports on-going, incremental enhancement so that it captures the actual state of the system rather than a snapshot of it at some period of time. We recognise that software isn't static but changes dynamically as it evolves with a business's needs and demands.
We can assist with all types of documentation
- Web based documentation.
- System documentation
- Code comments
- Version documentation
- Configuration files
- User documentation
TestingWe are proponents of automatic testing -- "test early, test often". When developing large systems, we have found that it's imperative to be able to automatically launch a full test of the software that tests existing functionality as well as the new features or functionality that's just been added.
The design and creation of a set of test cases takes some understanding of the components of the code and being able to construct meaningful tests and then develop frameworks to automatically apply those tests and report results meaningfully.
- Unit testing
- Use case analysis
- Regression testing
- Whole-system testing