Services

Consulting and Mentoring

My consulting work is dedicated to making developer teams more productive. The focus is to increase the velocity of the team, while simultaneously increasing the quality of the software they produce.

This is done by focusing on three key areas. The amount of time spent in each of the areas is dependent on the needs of each customer.

Streamline Development Process
The goal is to bring speed and agility back to agile. Too often, teams adopt an agile process, only to implement it in an inefficient way that introduces significant drag on velocity. I work with the team and the leadership to identify those practices that slow down the development process without adding value to the business. We streamline the process so that every action produces value in terms of faster development, higher quality, or clearer focus on the business goals.
Improve Structure and Architecture
I provide an external review of planned and proposed architectures. This includes research into alternatives, alignment with industry standards, alignment with current and planned business goals, and alignment with the current team's skillset.
Improve Team Skillsets
Even the best teams have gaps in their knowledge. When those gaps need to be filled in order to achieve the business goals and they are in areas where I teach, I will offer classes to help.

There are four approaches under my consulting arm that address these goals. An engagement may include any or all of these, based on customer goals.

  1. Agile Coaching. I help the team regain their true agility by critiquing their process work on a regular basis. I observe their current process, and continually suggest improvements. These improvements are often small changes that the team can adopt quickly. This gets the team into the habit of continuously examining their process and adopting a culture of continuous improvement.
  2. Architecture Council Actions. The same attitude of continuous improvement needs to become part of the architecture and design teams. While the architecture shouldn't be entirely replaced, often it can be modified slightly to respond to changing business needs, changing platform direction, or new knowledge and experience. In these discussions, we continuously review and adapt the architectural direction so that the software continues to stay competitive in the marketplace.
  3. Mentoring. I work alongside the development team to mentor them and help them become more productive. This involves design reviews, code reviews, and general guidance. I'll suggest libraries and classes that may quicken the completion of current tasks. I'll help ensure the quality and stability of the code being developed, and help ensure that proper practices are being followed with maximum velocity.
  4. Reference Implementations. I have deep technical knowledge of many frameworks and programming languages. In certain areas, I'll provide reference implementations of key components in order to validate key architecture designs.

Developer Training

Successful companies recognize that talent is an asset. They hire the smartest people they can, and then invest in those people.

Investing in your team is a sure-fire investment. On top of having a team that can deliver the skills a business needs, that team is able to deliver the best products and services to the market.

Bill’s classes are designed to let your team learn from an expert in a way that’s convenient and sure to return results for your business.

Class Format

All classes share a common format that is designed to engage all of your brain. Participants get a high level overview and learn background on the topic followed by Bill demonstrating with live examples.

After that, the class becomes a guided lab where participants can put the knowledge into practice.

Finally, participants are given a couple problems to try on their own, where they put their new knowledge into practice.

Class List

Current Classes

Upcoming Classes