Software Craftsmanship

Methods and tools your teams need to achieve technical excellence and craftsmanship how to create software products
Agile Technical Coach

Improving software design and construction is our passion. The goal is to help you become a more productive developer—and that does not stop at the end of your training and coaching sessions. Your success is important to us.

  • Reflect on new solutions to existing challenges
  • Review artefacts from sprint planning and design sessions
  • Periodically retrospect on your progress and challenges
  • Promote team learning with coding dojos, pair programming, design workshops, agile architecture
  • Introduce techniques like static code analysis, TDD, ATDD, zero bug policy
  • Be available to answer questions as they come

Design Workshops

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 is easier to understand and change
  • Implement alternative design solutions to resolve longstanding problems

Code Mentoring

It is easy to be overwhelmed by newly inherited legacy Java code. Legacy code can be difficult to work with. It can be helpful to have an extra set of eyes and a bunch of techniques for dealing with it. We 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

Assessments

Every project is unique, and so are its challenges. Through interviews, questionnaires, and surveys, we provide you with a detailed assessment of your software development process and project along with recommendations. We 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 the best practices can be applied
  • Quickly get a snapshot of your situation and where you stand
  • Gain a new perspective from an experienced outsider