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.

I can help you

Define

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
  • Replace requirements documents with a process for writing stories
  • Create a compass and a map to define your projects goals and direction
  • Work through examples of new features to flesh out common understanding
  • Specify acceptance criteria and automate acceptance tests
  • Build a suite of acceptance test to certify features work as expected

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.

Benefits
  • Build more of what your customers want
  • Deliver value to your users more rapidly
  • Eliminate up to half of all development time wasted on requirements
  • Automate acceptance tests that certify product readiness

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.

Contact me for a free consultation.

Educate

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 offer Scrum Developer Certification (CSD) through the Scrum Alliance as well as non-certification training for software development teams.

I’ll help you
  • Increase your velocity by incrementally delivering high-quality software to clients
  • Propagate an understanding of object-oriented design and development skills
  • Demonstrate to the team why software development principles are important
  • Assist your team in becoming a world-class software development center
  • Aide in establishing goals and measures as a baseline for evaluating teams progress

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.

Benefits
  • Everyone on the team shares a common definition of good code and how to achieve it
  • Builds a common vocabulary for high-fidelity communication throughout the team
  • The team adopts best practices and techniques from top performing developers
  • Developers understand the principles that make the practices work successfully
  • The cost of ownership for software drops by building quality in at every level

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.

Contact me for a free consultation.

Integrate

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.

I’ll help you
  • Automate the build to ensure it’s effortless to use
  • Use test driven development to build testable behaviors
  • Build a suite of unit tests that supports safe refactoring
  • Automate release candidate validation

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.

Benefits
  • Get instant feedback when bugs are introduced
  • Bugs are caught faster and cost less to fix
  • Fewer bugs reach production
  • Software is always in a releasable state
  • Features are delivered to customers faster
  • Last minute changes are easily accommodated

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

Contact me for a free consultation.

Advise

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.

I’ll help you
  • Adopt effective problem-solving and software design skills among team members
  • Teach practices for decreasing defects in software to reduce time lost in debugging
  • Foster a shared understanding of software development standards and practices
  • Guide you in refactoring legacy code so it’s safe to work with and simple to extend

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.

Benefits
  • Identify weaknesses in your software and how to rapidly remediate legacy code
  • Heightened work morale, job satisfaction, and individual motivation to learn more
  • Improve communication and information flow between developers and management
  • Use the opportunity to improve teamwork and build skills in development
  • Bring to bear techniques from organizations that have undergone similar transitions

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.

Contact me for a free consultation.

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.