Do you ever wonder why...
You've got a whole company full of experts and yet a huge percentage of software projects still fail?
You've got people who know how to program in X language using Y framework on Z platform and yet it doesn't always come together in the end?
You've set up a bunch of Scrum teams but you're no closer to improving your success rate?
You try to understand what your customers want but they're still not satisfied?
...you're struggling not because you're doing all the hip, modern things?
...you never have time to do it right but you always have time to do it over?
...you're struggling for the same reason you and others have always struggled?
...you're struggling because you don't actually understand your customers' problems?
I can help you... Solve Your Problems!
My name is Bob Churchill and my goal is to make your business better, make your process better, make your life better, and make you feel confident and supported while it's happening. Let me tell you how I do it.
This is what it's all about, right? I describe a lot of what I've done, what I can do, and what I'm best at doing below, but what is the benefit of bringing me in to do it? Here's where the rubber meets the road:
Who Am I?
I am a systems analyst / process analyst / business analyst. My background is in mechanical engineering, software development, computer simulation, and process improvement. Every job I've held has used and developed the same core analytical skills, even though they've been applied across numerous industries. I have most often served as an outside consultant for small, highly specialized vendors providing technical services and large-scale production equipment to much larger organizations. I have traveled extensively to serve customers all over North America, have visited a few customers in Asia and Europe, and have remotely served customers in Australia. I apply all those skills and all of that experience to help you.
I've served in almost every role in every phase of numerous project and program life cycles and better than anyone I appreciate that not everyone can be an expert in everything at any one time. People's concentrations change through their careers and the plot above shows the areas I value most highly now. The nine SDLC cross-functional areas define suggested skills needed to build an effective Agile team. My concentration at this point in my career is on the business value provided by the solution and the discovery and data needed to support that. All team members should (ideally) be conversant with all areas of required expertise but the reality is that teams will usually be composed of members with a range of experience levels. One or more relatively senior individuals should be involved, but most of the members will necessarily be specialists in specific areas because they haven't had time to learn the other knowledge areas nor gain the understanding of how all the pieces fit together.
I'm all about understanding and solving problems. I've written a lot of code, and I still list and to some degree continue to develop my coding skills but I do so not to express my desire to concentrate on that professionally, but to indicate my experience and ability to communicate with developers and technical teams in their own language with respect for what they need and care about. I'm very interested in how users control software processes and how they look, but my graphics tend to be utilitarian and I'm not keen to learn new interface frameworks every five minutes. I recognize that security and continuity are important, but they are not, themselves, part of the abstract process of solving business problems of the type I specialize in. I care very much about performance, to which end I'm good at developing and identifying algorithms that run more quickly. The mechanics of the development process and tools are obviously critical as well, but I want to leave the details to the experts who are the most engaged with them.
That is, I am most interested in the abstract aspects of understanding problems and discovering and designing solutions, and less about the specific processes of implementation. If you need someone who's an expert in things I haven't done, like security or DevOps, then I'm not your guy. If you need someone to manage servers and tune databases, then I'm not your guy. If you need someone to choose your development tools and run your Git repository, then I'm not your guy. If you need someone to identify and analyze the process steps and entities and data, identify and document how they should all be represented and define the calculations and transformations that need to be performed, and work with customers and technical teams to make it all happen, then I am absolutely your guy. If you need someone to figure out how to rearrange, automate, or improve your existing process, then I'm your guy for that, too.
What do I do?
I've analyzed and simulated a lot of processes for a lot of different uses, which has taught me how to conduct a thorough and consistent analysis. You can't simulate something unless you understand it really well, so I've learned how to learn everything I can about what you need.
Over the years I've developed a framework for analyzing and solving problems, and I explain it in detail here. The steps I follow are:Project Planning
Ideally there will be a review with you -- the customer -- during and after each step of the process, so all parties are agreed that things are on the right track before continuing. This involves building good working relationships, respect, and genuine interest in the work at hand and the people involved. I try very hard to initiate and maintain good lines of communication throughout each engagement.
I can help you... Analyze and Document Your Process
At root I see myself as a process analyst, and everything else flows from that. The typical business or industry process sees things enter, get processed and transformed, get connected and divided, get routed here or there, and exit the process in a way that provides business value. It doesn't matter whether the things being processed are people, information, fluids, car parts, packages, documents, or a combination of everything. Just as literature is about transformations, so are business and industrial processes. They are stories that tell you something about the world and make your life better.
"But not every process works like that," you say.
"You're right!" I say back.
Elements of a process don't always enter and leave, sometimes they just change state within it. Examples of this are aircraft in usage and maintenance support models. Sometimes an aircraft is flying, sometimes it's sitting, sometimes it's getting inspected, sometimes it's being repaired, and sometimes it's waiting for parts. Heck, sometimes it's doing several of those things at once.
I still tend to map processes the same way, and I'll use any kind of drawing and any kind of tool it takes to get that done. This site contains dozens of examples of different kinds of diagrams and graphics made using different methods. A picture is worth a thousand words and helps everyone understand and agree. An animation may be worth even more.
I use a process of discovery to learn what goes in and out of your process; the steps, machines, facilities, people, and environments that carry out your process; the transformations that happen in your process; and how things are routed within your process. Discovery identifies the nouns and verbs of your operation, the things and the actions.
Whether items pass through a process or change state within it we need to know about every step and state in detail. Here is where the transformations happen, where multiple inputs are combined, and where items or flows can be divided. Outputs from a process step can get routed to different places based on their characteristics and the operation of that step. We think of moving through the process as S-I-P-O-C, but we can also think of each operation in terms of what the customer needs and work backwards, in which case we think in terms of C-O-P-I-S.
I can help you... Capture the Data for Your Process
Once the discovery process has identified what's in a process and what happens we can begin the process of data collection, which is all about learning the numeric details of your process, its adjectives and adverbs.
This involves close observation of each operation and recording the relevant data using a variety of appropriate methods. Examples of detailed data to be collected include arrival times and rates, distances, dimensions, process and sub-process durations, volumes, heights, temperatures, qualities, equipment types, and anything that can be enumerated continuously or discretely. Measured things are continuous and counted things (including characteristics like color, shape, or citizenship) are considered discrete.
The data that need to be generated or output by your process must support your business needs. All input and internal data needed to support those outputs must be identified and sources must be found and evaluated. Calculations and other transformations need to be researched and verified to ensure accuracy, completeness, conservation, and logical consistency.
I work with you and your experts to ensure that the data used is accurate, authoritative, and complete. I'll help you get the data conditioned to fill in gaps, ensure consistency, and find workarounds and examine the associated risks and impacts of having to make estimations and assumptions about data that isn't available. I've used a wide variety of tools to gather, transform, evaluate, verify, condition, calculate, report, and present data. I won't quit until it's right and everyone understands it.
I can help you... Design and Implement Your Solution
Solutions come in all shapes and sizes. Sometimes they come in the form of new systems that provide new capabilities. Sometimes they are changes to and improvements of existing systems. Sometimes they involve computer systems and data processing and sometimes they don't. They can involve any or all aspects of a process or customer need. Sometimes the solution is merely a clear understanding of what's going on in a complex situation, where nothing even needs to be changed. Solutions are always designed and evaluated in terms of how they make life better for people.
I can implement a wide range of solutions on my own but the strength and depth of my experience in many areas allows me to work with a variety of implementation specialists and speak to them in their preferred technical language. Whatever I don't know I'll learn, and I enjoy and take pride in being able to learn from everyone. A writer famously observed that being a journalist is a license to be educated in public. I think that's a great way to look at it; I always enjoy learning. Knowing I've "been there and done that" and knowing what I've learned and how hard it was gives me a solid appreciation for what other people know. Listening to others and learning from them is a great way to establish trust and respect.
I bring a lot of analytical and organizational experience. You help me use it to help you build a great solution that works for you.
I can help you... Manage Your Solution
I've worked in situations involving many different locations, environments, industries, tools, techniques, organizational settings, and people over the years. I've seen things done very well and I want to see those methods applied and examples followed as often as possible, and I've seen thing done, uh..., less well, and I try very hard to see that customers and colleagues are protected from that. My job is always to make things clear, understandable, and as smooth as possible.
I've managed projects, programs, and products in various capacities. I've managed technical content, people, communications, risk, regulations, budgets, test and acceptance procedures, and customers and subcontractors to a greater or lesser degree. I haven't seen all of anything, but I've seen at least a little of almost everything.
I've formalized my experience by earning certifications in business analysis (CBAP), project management (PMP), Agile and Scrum (CSPO, CSM, CSD) which I've maintained and renewed. I've also been certified in Lean Six Sigma (as a Black Belt) and I'm considering whether to renew that one or earn a different certificate from another provider. I attend numerous professional Meetups in those and related subjects and continually study and write about a variety of subjects on my blog, in order to keep up with new techniques and ideas as they are discovered and developed.
But mostly I can help you... Solve the Right Problem!
Didn't I start with this point?
Yes I did, but that's the goal here, right? I've seen people who are good at some things but who don't analyze deeply or correctly enough and don't come up with effective solutions. I use the detailed analysis and discovery techniques described above to decompose a problem or process into its component parts at a low level. That allows me to group elements and actions together to see which items are specific examples of more generalized ideas. The goal of breaking things down in this way is that it can allow me to design solutions that are composed of the smallest number of general components that can be customized in consistent ways. Solutions built in this manner tend to be approachable, modular, flexible, adaptable, simpler to develop, robust, and maintainable. Imagine defining a few Lego pieces that can be easily snapped together to create systems of any complexity and you'll get the idea.
Not every problem can be broken down in exactly that way but the experience of having done so in many situations is an effective guide to teasing apart complicated situations. It gives me an appreciation of how to be thorough and how to make an analysis or solution as simple as possible, but no simpler.
Another important part of effective problem solving is knowing where to put the most effort, where to optimize. There are a several ways to think about this, including the Iron Triangle of cost and quality and features, development time vs. execution time vs. storage space vs. maintainability, and up-front analysis vs. experimentation and debugging. Having an appreciation for the history, context, and possibilities is very helpful.
This is part art and part science. I'll bring all I have of both to help you analyze your problem, and I'll learn everything I can from you and your colleagues to help you develop and implement an excellent solution.