I’m David Bernstein of To Be Agile.
I help software development teams improve their development process and master technical practices to rapidly deliver quality software. Using a combination of training and consultation, I'll show you how to master practices such as test-driven development, refactoring, and continuous delivery.
Nearly half of all development time and effort is spent analyzing, defining, formalizing, and then reading, interpreting, and responding to requirements. Instead of using this massively inefficient system. I’ll show you how to replace requirements with user stories, examples, and acceptance criteria to define features rapidly and without ambiguity.
I’ll show you how to replace requirements documents with an active Product Owner who manages a backlog of user stories that everyone on the team knows how to write, size, and build. You’ll work through a few examples for the stories to flesh out questions and build a common understanding for what’s to be built. You’ll then define acceptance criteria that can be automated to certify features work as specified.
I’ll help you define what to build along with acceptance tests that tell you when you’ve built it. Working with your Product Owner and backlog, we’ll define stories and work through examples so you know exactly what to build. You’ll streamline how you define what’s to be built and turn development into a discovery process.
I use a combination of assessments, questionnaires, interviews, workshops, coaching, and training to rapidly transfer core skills to your team and show them how to continue on their own to maximize the value of these practices.
Getting started with Agile is easy, mastering it can be challenging. Especially, the advanced technical practices can be difficult to master for developers because many of the skills aren’t common knowledge. I’ve helped thousands of developers master these technical practices. I know how to avoid the common pitfalls people fall into when adopting them and how to use them to their fullest.
Learn from my experience and the experiences of the many people I’ve worked with. I’ve had the privilege of working with thousands of professional software developers in my career as a developer, trainer, and coach. I offer unique and powerful classes on innovative practices in software development.
I’ll help you
I can help your team master the technical practices of Agile software development quickly so they are productive with these techniques immediately. I’ll expose your team to best practices and systems that will hugely improve the quality and efficiency of their work.
Master the skills needed to rapidly build maintainable software. The whole team must understand the key principles, patterns, and practices for efficiently building software in an iterative environment. As a Registered Education Provider for the Scrum Alliance, I offer Certified Scrum Developer training as well as non-certification training for software developers and development teams to master the essential skills of Agile development.
Integration can be the most challenging phase of a traditional software project. Continuous integration turns that challenge into a rich source of feedback for developers. But building a reliable, trustworthy CI system is easier said than done. It depends on having good unit tests, which depends on having good testable code and a testable architecture. This can be a lot of work but it’s worth it.
Regardless of how often you release, your system should be built so it’s always in a releasable state. Integration issues can grow exponentially so integrating continuously, as every bit of functionality is built, is far safer and easier. In fact, it goes from being a difficult task to a rich source of feedback for developers as they are building a system. I can show you how to build a suite of tests that support refactoring and make it safe to refactor code.
Integrating code as it is built is at the very core of Agile and where many of the biggest benefits come. Bugs are caught faster and the costs associated with finding them drops significantly, reliability increases, last minute changes are more easily accommodated, and users get more value faster.
Whether you choose to deliver updates continuously or not, you should build software so it’s always in a releasable state. This reduces risks and drops cost of ownership. When you build software in this way it costs far less to maintain and extend.
Automate regression and integrate continuously. Having a fast, trustworthy build provides fast feedback and give you a system that’s always in a releasable state. I’ll help your team integrate software continuously, as it is built, and a system that will immediately notify you if bugs are about to be introduced
Sometimes, we need an outside perspective to evaluate a move before we make it. I’ve taken dozens of software products into production and I’m comfortable in a variety of development paradigms.
My knowledge isn’t just theoretical. I depend on my clients to keep me up on their ongoing challenges and triumphs. I’ve learned more effective ways of implementing virtually every stage of software development. With these new insights, I offer design reviews, code inspections, and advisory services to help you determine the state of your software and how best to improve it.
Gain massive efficiency from best practices I’ve acquired over the years. You don’t have to reinvent the wheel. Through interviews, assessments, design reviews, and code inspections, I’ll advise you on best uses of your efforts. Working with your developers on their code, we’ll identify areas of risk and where to focus attention to get the most value.
Apply your newly learned skills to your project. Use what you learn right after you learn it. I’ll work with your team one-on-one and in small groups to apply the skills they learn in class to your own project.
I offer consulting and training services, in person and online. Using a set of unique offerings that can include assessments, design reviews, code inspections, onsite classes, customized coaching, onsite classes, online training, and ongoing support, I work with your team to reach your goals and improve upon specific metrics you establish.
Contact me for a free consultation.