Consulting can be tailored to your needs. Our particular interest is in providing object-oriented design assistance, where we work with your team to discover or refine your requirements and to develop a domain model for your system.
In the process, your team learns how to tackle object-oriented designs while working on their own project.
We've been having very good success by working with your development team to quickly capture stories and create the domain model, then test the validity of the model and further develop it by rapidly implementing it in Python. By using a lightweight language, we can effortlessly make changes to the implementation and domain model; if the implementation is in a heavyweight language there tends to be resistance to design changes. This approach produces the best domain model in the shortest time, and allows a faster and more confident transition to your target language because fewer surprises happen once the domain model is shown to be satisfactory.
Project reviews generally take from 2-5 days and involve a walkthrough including all or part of your team, examining your architecture, design, or code, depending on where your project is. During this process, it's likely that we'll discover numerous places where the design and implementation can be improved. A review is also valuable as a team communication tool, to help people understand parts of a project they might not otherwise have the opportunity to study.
We've also found that the review process typically offers chances for impromptu learning sessions, whenever we discover programming concepts that aren't quite clear to everyone.