Every project is unique and so are its challenges. Through interviews, questionnaires, and surveys we provide you a detailed assessment of your software development process and project along with recommendations. I also offer online and remote assessments.
- Articulate and refine your product definition
- Evaluate your agile software development processes
- Identify what’s working and what needs improvement
- List areas where best practices can be applied
- Quickly get a snapshot of your situation and where you stand
- Gain a new perspective from an experienced outsider
It is often useful to get an outside perspective. We have extensive experience working with design patterns and architecting a variety of systems, from embedded to the enterprise, and custom applications to operating systems.
- Identify patterns in your design to simplify and clarify code
- Improve the testability of your designs to help automate validation
- Examine the context and motivation around your design decisions
- Suggest design alternatives to accommodate future changes
- Clarify your domain model so it’s easier to understand and change
- Implement alternative design solutions to resolve longstanding problems
It’s easy to be overwhelmed by newly inherited legacy Java code. Legacy code can be difficult to work with so it can be helpful to have an extra set of eyes and a whole bunch of techniques for dealing with it. I can help review your software to identify areas of risk and create approaches for mitigation.
- Review, prioritize, and organize existing legacy code
- Retrofit unit tests into legacy code so it’s safe to refactor and modernize
- Identify types of technical debt in your code and how to fix it
- Suggest alternative implementations for challenging code
- Use techniques to clean up existing code for maintainability
- Refactor code so it can readily accommodate new features
- Gain techniques for efficiently refactoring legacy code
Improving software design and construction is our passion. The goal is to help you become a more productive developer—and that doesn’t stop at the end of your training and coaching sessions. Your success is important to us.
- Reflect on new solutions to existing challenges
- Review artifacts from sprint planning and design sessions
- Periodically retrospect on your progress and challenges
- Promote team learning with coding dojos, pair programming, design workshops
- Be available to answer questions as they come