Essential Training for Software Developers

This immersive, sixteen-hour training program provides the knowledge and skills to become a successful software developer and a valuable member of a software development team. It can be delivered online or in person in four four-hour or two full-day sessions.

First, we’ll explore the principles of Agile and how they support faster and simpler software development. Then, we’ll examine a core set of principles, practices, and patterns that enable incremental software development and drop the risks and costs of extending code in the future. You’ll learn how to speed up and simplify software construction by defining features in stories, building them in iterations, and employing many of the best practices used by high-performing, cross-functional development teams. You’ll discover the secrets to implementing and managing a successful Agile software transition and gain expert techniques for overcoming common adoption impediments.

You’ll learn to make better coding choices and master a shared vocabulary for discussing design that can dramatically improve inter-team communication. By the end of this training course, you’ll be armed with several new, effective tools for solving design problems that will empower you to produce immediate improvements in the quality of the software you design and build.

Course Benefits

Completing this training program will give you the knowledge of the core principles and practices of Agile and Extreme Programming to help you rapidly build quality software and enable you to:

  • Write stories and build features in sprints
  • Estimate development tasks more accurately
  • Diagnose and fix pathologies of poor code
  • Employ BDD to specify and document stories
  • Distinguish between twelve design patterns
  • Define an effective CI strategy
  • Share a common vocabulary for evaluating and communicating designs
  • Quantify software qualities that make code easier to maintain and extend
  • Appreciate the value of adopting shared coding standards
  • Read and write the most useful UML diagrams
  • Deliver valuable software in sprints
  • Create flexible designs that can be easily changed
  • Recognize pathologies in code and how to fix them
  • And much more…

 

Who Should Take This Course?

This Software Developer Essentials training course is for all team members and has the greatest impact when the entire team attends. This course will benefit Architects, DBAs, Designers, Developers, Development Managers, Directors, Product Managers, Programmers, QA Engineers, Software Engineers, Technical Analysts, Technical Leads, Technical Writers, and Testers. Familiarity with basic Object-Oriented (OO) concepts and terminology is recommended.

Agenda

Session 1: Agile

1. Introduction

2. Agile Principles

3. Agile Fundamentals

4. Five Developer Practices

 

Session 2: Analysis

1. OOAD Revised

2. Development Practices

3. Story Writing

4. Story Writing Workshop

Session 3: Design

1. Development Essentials

2. Principles and Perspectives

3. Software Patterns

4. Encapsulating Varying Behavior

 

Session 4: Development

1. Encapsulating Foreignness

2. Encapsulating Construction

3. Design Exercise

4. Encapsulating Cardinality

Your Instructor, David Bernstein

My continuing passion for software design and construction has led me to train more than 10,000 professional software developers for clients that have included Fortune 500 firms such as Microsoft, IBM, Yahoo!, Boeing, AT&T, Sprint, Medtronic, SunGard, State Farm, MetLife, and Weyerhaeuser. As a longtime IBM consultant, I trained software engineers around the globe, giving them the skills to write the next generation of applications and operating system software while earning one of the highest satisfaction ratings in the history of IBM education. Since 2006, I’ve devoted my consulting practice to providing organizations with technical training and coaching for software developers and teams transitioning to Agile and Extreme Programming practices.

Praise for David’s Training

“I learned how to think effectively about code quality. I learned principles and practices of effective design. It explains patterns in plain English. David’s teaching style is very engaging and clear. I would highly recommend this class to any level of developer.”
—Todd Froyland, Senior Tech Lead/Architect

“This class is essential to any technical professional in a development environment. The approaches covered will help with every phase of the development cycle on any size team or project.”
—Tyler Ashbridge, Director of Systems Development

“We will be significantly faster at accommodating last-minute things that always seem to come up in our work. Even if you think it may not apply to you, do it. You will see how it does apply.”
—Martin Murphy, Senior Scientist

“Any expectations you have will be exceeded. You will be a better developer afterward, even if your company does not utilize Scrum.”
—Keith Prokasky, Senior Software Engineer, Certified ScrumMaster

Become a more proficient developer—Register for the next session or contact me to arrange a private, onsite session for your team. For more information, visit http://ToBeAgile.com.

View a pdf version of this course description.