Renaissance Software Consulting (dba Wingman Software)
Software Delivery (A)
Thursday 10:30 - 11:14
Session type: Lecture
Session level: Intermediate
Refactoring’s Three Critical Skills
To keep code young and flexible for a long useful life, design has to be reconsidered and revised with each new behavior added. Consequently, refactoring is a step in the TDD cycle. Even with that emphasis, code can deteriorate into the incomprehensible. Just saying refactor, does not cause it to happen. It takes skill to identify code and design problems; it takes skill to envision improvements; and it takes skill to transform code while keeping it working the whole time. In this talk we’ll explore the three essential skills to keeping code young.
James Grenning, founder of Wingman Software, trains, coaches and consults worldwide. With more than thirty years of software development experience, both technical and managerial, James brings a wealth of knowledge, skill, and creativity to software development teams and their management. As his professional roots are in embedded software, he is leading the way to introduce Agile development practices to that challenging world.
In 2011 James authored and published Test-Driven Development for Embedded C. This book is helping embedded C and C++ programmers around the world to improve their software, product quality and work-life. TDDEC has been translated to Chinese, Korean, and Japanese.
James was Agile before it was called Agile. He is one of the original authors of the Manifesto for Agile Software Development. He is a seasoned extreme programming coach and trainer, coaching his first XP team in 1999.
James has made a significant contribution to Agile teams with his invention of Planning Poker. In a pragmatic moment, James restarted a stalled planning meeting. No one could settle on an estimate without endless debate and discussion. He had all the participants write their estimates secretly on a note card, then reveal them simultaneously. Agreement required no unnecessary debate. Areas of difference could be discussed or deferred. The meeting was no longer stalled. Soon, everyone around the table had a handful of cards and Planning Poker was born. That insight was the seed that has led to more fun, productive, and accurate planning sessions for Agile teams. James can bring that kind of pragmatic action to your teams.
James has designed embedded applications for weather radar display, FAA control tower displays, distributed automatic testing systems, voice response systems, high-speed cut-sheet printing and communications systems. But, there is more to James than embedded software. Through his career he has worked in many domains and technologies. It positions him well to bring the knowledge and experience from main-stream software development back to his roots in embedded.
He has been training, coaching, and consulting since the mid-90s. His broad experience in design, requirements, management, planning, test automation, and process improvement makes him a well rounded resource for his clients adopting Agile techniques. His work has taken him to three continents.
He has also written articles for IEEE software, IEEE Test and Measurement, and C++ Report. James contributed a chapter to Robert Martin’s book Clean Code. He also contributed a chapter to the book Beautiful Teams. He speaks regularly at Embedded Systems Conference, Software Craftsmanship and Agile Development Conferences. He is one of the authors of CppUTest, an open source test harness for C and C++.
Areas of interest are software process improvement, Object Oriented Design, programming, embedded systems, project management, Extreme Programming, Test Driven Development, test automation and Agile software development. James knows his way around Scrum, with Scrum Master and Product Owner certifications.