The Development Essentials curriculum consists of training that focuses on key principles and practices for building higher-quality software more rapidly and with fewer defects. This training spans five subject areas:
1. Beyond Object-Oriented Analysis and Design
All members of an effective object-oriented (OO) development team must have a good understanding of OO analysis and design. But these skills alone aren’t enough. Traditional “noun-based” design methodologies lead to steep inheritance hierarchies that introduce redundancy and spread business rules out across a system, making maintenance problematic. You will learn why traditional OO analysis and design methodologies produce difficult-to-maintain software, and you will become armed with an arsenal of better techniques for analyzing problems and designing systems.
2. Advanced Object-Oriented Development
Learning just the syntax of an object-oriented language will not show you how to take full advantage of OO development, but, sadly, this is what most object-oriented programming books and classes teach. We’ve all seen OO code that is nothing more than procedural code wrapped in classes. A different way of thinking is required to take maximum advantage of an OO language. This is equally important to beginning as well as advanced OO developers, since this information is not generally understood or leveraged by most developers. You will learn how to make the most out of any language and to realize the promise of OO development.
3. Discovering Design Patterns
Although they were discovered more than 15 years ago, design patterns are more relevant today than ever. Patterns embody the proper use of objects and show us how to uncover the forces at play in problems, enabling us to discover elegant solutions without over-design. While this is not a common way of viewing patterns, it has proven to be highly effective for tens of thousands of software developers. Seeing patterns in terms of what they encapsulate will permit you to unlock many more opportunities for applying them effectively, and help you communicate with other developers in high fidelity.
4. Leveraging Test-Driven Development (TDD)
The value of TDD is becoming known to a growing number of organizations, but adopting such an advanced practice can be fraught with challenges; many teams who apply TDD incorrectly soon end up abandoning it with nothing to show for their efforts. Fully utilizing the power of TDD to drive design requires knowledge of what good design is and how to achieve it. When you understand the theoretical background, knowledge and critical applications of TDD you will be able to make the most of driving development with unit testing.
5. The Essentials of Agile Development
Building effective software does not have to be a death march, and you don’t have to sacrifice quality to meet reasonable deadlines. Agile software-development methodologies work better than waterfall development in most situations. But as successful as Agile methodologies are, the majority of Agile projects do not realize their full potential, primarily because software built in an Agile project must be easily changeable. Short iterations and ongoing customer involvement means your software must be resilient enough to change. You’ll learn software-building techniques that makes change less costly and gives you the confidence to change code as needed.
PRIVATE CLASSES are available for on-site delivery to companies wishing to bring this training in-house for their development team. Contact us to schedule your private class.