Build software better, build better software

Working With Allen

I am not a typical Agile consultancy, forcing a canned process (like Scrum) onto your organization. I strongly belive that there is no single pre-defined process that works anywhere, much less everywhere, and you have to develop processes that solve your actual business problems in a way most suited to your organization. My goal is to make your organization more effective, regardless of the process you use. I come to the table with a broad and deep understanding of Lean/Agile and other proven practices, and I leverage that knowledge to help your organization improve. If you're already Agile, I can help improve your process. If you're not, I can improve it even more—not by making you "Agile," a word that's come to mean next to nothing, but by helping you develop a system of work that's right for you.

Every organization is different, so requires a unique solution. I work collaboratively rather than telling you what to do, and my advice focuses on making you and your business successful, not on selling some off-the-shelf one-size-fits-all process. I can usually significantly improve organizational effectiveness in a very short timeframe, while at the same time creating a deeply satisfying work environment for your employees, reducing churn, and delivering software that's actually valuable to your customers.

Schedule a free chat.
More about Allen

The Process

I always start with a exploratory conversation at no charge to you. We’ll discuss your goals, the problems you see, any issues you’ve identified, and how best I can help you.

Every organization is unique, and our assessment is customized to address your specific goals and concerns. The scope may be company-wide or focus on a department, project, or initiative. A typical assessment spans five days (longer if remote or the company is large) and combines discovery with active coaching.

During the assessment, I talk extensively with everyone involved in the software-development process and observe your teams at work, providing advice and lightweight coaching when appropriate. This is a collaborative process. We listen, of course, but are happy to provide advice an present our observations as we work.

Then, working collaboratively, we'll develop an Action Plan that addresses your objectives. That plan usually includes active coaching to ensure that you have the support and guidance you need to meet your goals, and may also include formal training and one-on-one work with you, your executives or managers, and the teams.

My initial role is that of an advisor, providing an outsider's perspective and considerable experience. I will identify areas of improvement that you can't see, and will help you identify concrete actions that will unleash your organization's potential. I'll then help make those improvements a reality by working directly with you, your management, and your teams.

Step 1: Two-way Assessment/Discovery

In this initial phase, we both learn about each other. I assess the state of your organization, but I do that through conversations where we'll also discuss agility, what it means to adopt agile ways of working in general, and working with me in particular. The Discovery phase consists of first-hand observation of your team dynamics, management practices, and workflows. I'll observe how you plan and how you convert that plan to fully-deployed software. That process reveals both what works well and where there's room for improvement and optimization.

Areas of focus

Pain points
We'll discuss you pain points. What keeps you up at night? Where do you think you need improvement?
Organizational culture and structure
We'll assess everything from team and department structure and support to overall culture. This stage often involves collaboratively creating both an organizational-structure map that shows, not just the reporting hierarchy, but all communication paths, and a "value-stream map," which makes your process visible and helps you get a deep understanding of your entire system.
We look at the processes you use to build and deploy your software, leveraging our deep understanding of both Lean and various Agile processes and frameworks to find improvements.
Code and Architecture
We'll assess the code and architecture of your software system. An inappropriate architecture can slow you down so much that agility becomes difficult. We will need to see all your planning/organizational/architectural resources and artifacts, including your backlog. Ideally, we'll also have access to your git code repository (or a copy of your code).
Development and deployment environments
We'll evaluate the physical and remote-working environments, as well as the tools you use for day-to-day work (for programming, deployment, and Agile-process monitoring and management).

Step 2: Consolidation

After the discovery phase, we'll work together to develop an action plan to move your organization towards awesome. We'll:
  • Build a shared understanding of how current structures, practices, and policies impact organizational effectiveness.
  • Identify high-value opportunities for improvement, focusing on high-impact changes we can do immediately.
  • Working together, we'll develop a concrete, but adaptive, plan for moving forward. We use Mike Rother's 3-part Improvement Kata, of which the Discovery phase is the first step (assess the current condition). The action plan is the second step: developing several eperiments tha will move you in the right direction. During the consolidation phase, below, we'll execute those experiments and assess the results. If they don't lead to improvement, we'll refine or change them. If they do, we'll create additional experiments at that point. In other words, The Consolodiation phase is really the first step of an iterative Agile proces. Try something small, assess the result, adapt based on those assessments.
During this phase, we'll also colaborate to identify strategic transformational goals. This is a highly collaborative process—we do not work like other consultancies that provide rigid plans for you to follow, but instead work together. Those could be anything from small tweaks (e.g. introducing Agile practices like TDD and Mob Programming) to entire organizational changes that impact the organizational structure and culture. We'll also develop a transformation strategy, which could range from small incremental transformation, to creating a fully Agile "Skunk Works" to act as an incubator, to a full-org "big bang" transformation.

Step 3: Moving to Awesome

Finally, we'll put the plan into action. We do not "bring in a team of experts" to force changes on you. Our goal is to help you become self sufficient, and you can't do that if you rely on outside "experts." Transitions of this sort are never over. You don't want to be left in the lurch when those "experts" leave. So, we create in-house experts from your own people who can continue to help with the transition long after we're gone. We always work across the organization with key individuals and teams. Typically, We'll do one or more of the following:

Transition-team building
In larger organizations, our first step is usually building an internal team to guide the overall transition. Unlike many consulting firms, my goal is to make myself unnecessary by building a capable internal team that can carry on with the work once I'm gone.
Advice in desiging policies and structures that deliver value to your customers and employees. We focus on providing an environment within which the teams can be optimally effective in identifying and delivering valuable high-quality software to your customers in minimum time. We can help with everything from agile-friendly product strategy, to company culture, to organizational structure.
Management and Product
Agile teams are often self managing, and if there is a designated manager, that person acts as a servant-leader. We work with both mangagers and teams to make them effective in controlling the work while easily adapting to change. We focus on value-based planning and incremental development. On the product side, we help you develop product strategies focused on user value, and suitable for incremental development and rapid regular release cycles. We'll show you how to create effective user stories suitable for passing on to Engineering and how to organize and size stories to identify and eliminate low-value work.
We work to make the teams effective, focusing on technical agile process and architecture. We help improve code quailty while simultaneously improving delivery time, working at the process, architecture, and code levels. For example, we can help you migrate towards agile-friendly evolutionary architectures like microservices, improve your code through practices like TDD and refactoring, help with team dynamics by introducing practices like mob programming and #NoEstimates, and help develop optimal workflows that take a user story from inception to deployment.
We can provide formal training in a full-range of agile topics, using either lecture or workshop formats. We also provide immersive learning workshops that combine education with work on your actual product. Our classes are highly rated and practically focused, often presented as hands-on workshops.
We can do all of the above working either on-site or remote as appropriate.