Agile and Lean Consulting & Coaching
Do you want your team to change fast or gradually? Are you ready for a big change? Or do you want to make smaller changes and see how it goes? You can choose the balance that's right for your team. I'd be glad to discuss your goals and options. We can go as fast as you like. If you want to go big, I can bring in a team to provide any level of coaching support you want.
I also offer gradual part-time Agile Coaching to help you for the long run, with low disruption, and low cost. It's easy to start. No contract. I take the risk. If you're not satisfied, we stop. Simple as that. Of course, I'm hoping to help you grow and improve in many ways into the future. My job is to keep providing you with value.
Tell me about the greatest opportunity or pain for your organization, and let's find a way to address it.
If you want to get more Agile, for your professional development, or just for fun, there's a lot of stuff to learn. How to pick and use a unit-test framework. How to test a variety of things. How to fake or mock collaborating objects. How to refactor, on a variety of levels. Design options. Design Patterns. Breaking requirements into smaller testable pieces. Organizational challenges. Etc. Etc. But there are also some gradual steps you can take, so you can make progress, and learn at the same time.
Like in many things in life, it saves you time and frustration to be able to ask someone questions, and get some extra info. I'm here to help you keep moving forward. I'd be glad to discuss your next steps on your Agile journey.
You can get more Agile in small steps, the next time you code. Start with small, seemingly tiny, improvements in the code. They will add up over time. Martin Fowler calls this Opportunistic Refactoring. Uncle Bob characterizes as a boy-scout rule, of leaving the code in a better state than you found it.
A great start is to learn & use simple refactorings, such as renaming for clarity (e.g. Rename Method), breaking long confusing methods into smaller focused methods (Extract Method), and one of my favorites, Compose Method, as recommended by Joshua Kerievsky, in which you code intention-revealing steps, at the same level of detail.
While there many sophisticated refactorings, just doing these few simple ones will help clarify the code, help your skills, and reveal bigger opportunities. (Some Editors/IDE's make it even easier.) When you get a chance, observe how experienced Agile developers often to do these refactorings as natural part/foundation of working on bigger challenges. Sure there are concerns about breaking working code, especially when you don't have the safety net of automated tests. But you can use your engineering judgment about the stage of code development. At the very least, you can do it in your local changes before your next commit. Small improvements will add up quickly. In the code, and your skills.
If you'd like to receive more "Agile Steps", email More Agile Steps.
So you want to get the benefits of Agile, etc. That's great. While grand sweeping organizational changes sure are tempting, they frequently go astray. They can be disruptive and expensive. They can even backfire big, and very publicly.
There is another way. You can get the benefits of Agile and Lean practices in smaller steps. You can focus on your urgent priority issues first, and use Agile practices opportunistically. These small process improvements will add up. After years of helping organizations, I'm more and more recommending this simpler approach to change:
Your organization can get more and more Agile, in small steps, without big disruption, risk, and expense. Real lasting change is usually more like a marathon anyway. Relaxed persistence, and some smiling, helps along the way. And, there is no real finish line anyway. You can keep improving, as you meet new opportunities and challenges, and keep learning and refining your business. Or, of course you can always just stop, when you decide your organization has learned enough. The decision is yours.
"Kelley is an incredible resource into Agile methodologies -- what works, why it works, and how to implement. We have engaged Kelley to prepare materials, give technical guidance, and facilitate adoption of key practices into our organization. We enjoy working with Kelley and would highly recommend him to others. " -- Jonathan Siegel, Founder and CEO, ELC Technologies
"Kelley Harris is meticulous, efficient, an excellent communicator and a talented software engineer. When Kelley is helping us with projects, we know that great work is getting done and we rest easy, knowing our dollars are being spent wisely." -- Joshua Kerievsky, President of Industrial Logic, and author of Refactoring to Patterns
"Kelley has been a huge help in allowing us to determine our software direction. He has advised at the highest level all the way down to the implementation details, when needed. Based on our needs, Kelley has been guiding us toward TDD and SOLID and these methods hold great promise for the future of our software. I've also checked in with a few other software managers I know and all wish they had this guidance and direction at the start of their company. Kelley is a trusted advisor and I highly recommend his services and his message." -- Casey Hare, Senior Systems Engineer, Angstrom Designs
"The training was just what we are looking for to start a new agile team. Elaine helped us create a flexible, practical course plan for the day and she was extremely helpful in gathering feedback and helping iron out questions and issues after class with our product owner and Scrum Master. I'm hopeful that we grow each of the agile teams and reach a point to get a refresher from either of you two to continue growing in the self-management methodology." -- Jon Garcia, VP Product Management, Toolwire
"Elaine, Thank you for helping us launch our 3rd agile team. We are grateful for the training and expertise you've been able to share to enable our teams to start in the Agile/self-directed method. We are especially grateful for you sharing your expertise after the training sessions to provide feedback and share your experiences with teams you're leading elsewhere." -- Jon Garcia, VP Product Management, Toolwire
"I worked with Kelley Harris, for many years, in a range of different capacities. Kelley has a great perspective on software development wanting not only to produce great code but also having a high level of focus on creating something that fits the business and customer needs. Kelley was constantly searching for ways to improve our productivity and brought several changes to our software development process that had a great impact on customer satisfaction." -- Kevin Kjoller, VP, Product Development, Anasys Instruments, former Director of Engineering, Veeco Metrology, Research SPM
"We certainly appreciated Kelley's presence at Toolwire. More than a trainer, Kelley acted as a coach for the team and individuals, addressing specific needs. We are grateful for his insight in our team's needs and opportunities for quick, impactful growth." -- Alex Salinsky, Product Manager, Toolwire
"I am writing in recommendation of employment for Kelley Harris. I am currently a Staff Software Engineer at Veeco Metrology where I have worked with Kelley for several years on a corporate effort to create a common software platform across Veeco’s business units. Kelley’s contributions to this Common Assets Group were invaluable and he was a leader in guiding the Santa Barbara business unit towards adoption of the common software platform. Kelley has a great work ethic and has proven himself capable of taking initiative to move things forward. Kelley was always the most thorough reviewer taking the time to really scrutinize code and design and make recommendations to improve quality. Kelley also has made sure he is up to date with the latest software paradigms and is able to evaluate their potential value to projects. For example, Kelley originally suggested we look at adopting the boost C++ libraries as an integral part of our common platform, which has proven extremely useful. In summary, I believe Kelley Harris would be a valuable software engineering asset for any organization and I recommend him highly." -- J.D. Herron, Staff Software Engineer, Veeco Inc.
"I had the good fortune to work with Kelley on a complex software project involving the refactoring of a large body of instrumentation software. Kelley helped us to get the project funded and launched. We pursued four main program thrusts: architecture, development process, automated testing, and skills development. In each of these areas, Kelley contributed valuable ideas that influenced the program and improved the quality of work that was accomplished. His approach to problem solving is thoughtful and well considered. He tracks software technology trends, and is a tireless advocate for best known approaches, especially in software development process. I learned to trust his opinions and to rely on his assessments." - John Wissinger, PhD, VP Optical Industrial Metrology, Veeco Instruments
“To whom it may concern, My name is Andreas Huber and I was heading the Engineering Department for the Automotive Diagnostics Division of Robert Bosch LLC in North America between 2008 and 2011. Within this time Michael Kelley Harris was working for us on a contractual basis in several crucial projects as a Software Architect and a Senior Software Engineer. Some of these projects are for example: - Performance and Feature improvements for a Windows based Software product called Shop Foreman Pro using C++ and ActiveX - Design and Implementation of a SOAP-Based Interface for a WebService for Diagnostics Service Information using C++ and XML - Design and Implementation of a new Data Driven Software Architecture for a product called CDR (Crash Data Retrieval) and Implementation a Web-Based data collection system for a major Asian OEM. Kelley has a fundamental understanding of different types of Software Architectures and the ability to apply them in an excellent way to the given customer requirements. He also has strong capabilities in finding adequate solutions even in high-pressure situations. He is always willing to take on leading roles within a team and always focused on the customer requirements. He is always seeking for new challenges and is willing and able to learn new things in a quick and profound manner It is always a pleasure to work with Kelley and I would be glad if I would have to opportunity to work with him together in future projects. With kind regards” -- Andreas Huber, Director Strategic Marketing within Robert Bosch Diagnostics Business Unit