Looks like this event has already ended.
Check out upcoming events by this organizer, or organize your very own event.
Scrum Software Development Essentials: March 23-25, 2011 -- Phoenix AZWednesday, March 23, 2011 at 9:00 AM - Friday, March 25, 2011 at 5:00 PM (MT)Chandler, AZ |
|
Event Details
Scrum Software Development Essentials
Part of the Certified Scrum Developer Training Week
COURSE DESCRIPTION
This unique, 3-day training for software developers covers the
critical skills needed to be an effective member of a Scrum software
development team. Participants learn to identify and give names to the
inherent qualities that make software flexible so all team members can
communicate with high fidelity. Specific principles and practices which
support the development of quality software are presented and examined
in detail, including how to discover elegant solutions to software
problems using a variety of problem-solving techniques. Understanding
the forces at play in software problems enables participants to find and
apply the necessary abstractions that make software less complex and
reduces the cost of ownership. Advanced techniques, such as
commonality-variability analysis, “refactoring to the open-closed”,
encapsulating construction, and pattern-oriented design, are emphasized
so participants learn how to emerge designs just-in-time and with
minimal waste. Mornings are devoted to lectures, with afternoons spent
in (Java) programming labs using Eclipse.
- INTENDED AUDIENCE: Software developers, testers, designers, architects and technical leads.
- PREREQUISITES: Familiarity with basic Object-Oriented (OO) concepts and terminology; ability to write simple programs in Java using Eclipse; a laptop with the latest version of Eclipse for Java installed (if you cannot bring a laptop you will be paired with someone who brings one).
- CERTIFICATION: This course satisfies the three days of technical training requirement needed for Scrum Developer Certification. It helps prepare participants to work effectively on Scrum development teams.
WHAT YOU’LL LEARN
Upon completion of this course participants will have a deeper understanding of how to build quality software on a Scrum team and be able to:
- Write software that supports an iterative process without excessive rework
- Use object-oriented techniques to write software that is more extendable
- Identify six code qualities that make software easier to maintain
- Understand how to create flexible designs that can easily change
- Use several practices for writing better software, in any language
- Recognize pathologies of poor code and know how to fix them
- Support collaboration, pair programming and working with customers
- Understand the importance of continuous integration and versioning
- Use test-driven development practices to help build higher-quality software
- Discover software patterns just-in-time to avoid upfront overdesign
COURSE INCLUDES
- Expert training from one of the industry’s most experienced Agile developer-instructors
- Continental breakfast and lunch; snacks and beverages throughout the day
- A printed and bound copy of all course materials
- A USB drive containing lab-exercise solutions and other useful content
- A free, 30-day advisory period entitling you to ask your instructor questions about the course materials and content, by phone, Skype video or e-mail
- Access to members-only forums containing articles and Scrum-related information
- Free 1-year membership to the Scrum Alliance (normally $50)
- Special discounts on future coaching, and other offers, from Techniques of Design
AGENDA
DAY 1: ANALYSIS
- Introduction: Outline of the purpose, objectives and logistics of the class; why Scrum development is important and how it differs from waterfall development.
- Scrum Development Essentials: Practices including why and how continuous integration supports building better software more efficiently; collaboration with team members; pair programming; engaging the customer; and building a culture that supports ongoing improvement in software development.
- Test-Driven Development: Mechanics of Test-Driven Development (TDD), and how to use it to inform design and create executable specifications; discussion of what makes a good test and common TDD anti-patterns to avoid.
- LAB 1-A: “Iteration 0.” Introduces the case study and software set-up.
- LAB 1-B: “Writing the Test First.” Explores the experience of writing tests before code by implementing the basic stories for our case study. Students learn practical techniques of estimating and working in short cycles, and are encouraged to refactor their code for maintainability once the core stories are implemented.
DAY 2: DESIGN
- Design Review: Includes a group discussion on participants’ experience writing the test first and how well they did at estimating their stories. We also examine the trade-offs of various design decisions employed to implement the stories.
- CREATE Code Qualities: Overview of six critical code qualities; how to recognize when they are missing and ways to get more of them; the relationship between code quality and testability.
- Agile Architecture and Design: Different design paradigms and methods of approaching problems; design principles and key development practices for writing high quality, extendable software.
- LAB 2-A: “Adding Optional Logging Behavior.” Examines the use of changing customer requirements to discover patterns that give us extensibility.
- LAB 2-B: “Encapsulating Complex Business Rules.” Focuses on use of compound patterns to elegantly express complex business rules.
DAY 3: DEVELOPMENT
- Design Review: We discuss how to find patterns in problems, particularly those discovered in the previous day’s labs; we give names to those patterns and review how they were discovered.
- Testing Techniques: Explores advanced testing techniques including the use of mocks and shunts, dependency injection and how to write testable code.
- Refactoring and Emerging Systems: Techniques for refactoring, emerging designs and cleaning up legacy code; different ways to combine the principles and practices covered in the course.
- LAB 3-A: “Refactoring Legacy Code.” How to clean up code by identifying code smells and which refactorings you can apply to clean them up.
- LAB 3-B: “Mocks and Shunts.” Presents advanced techniques to write mocks and shunts that ensure you are testing only what you need to.
- Wrap-Up and Conclusion
YOUR INSTRUCTOR
In the course of his 30-year career, David Bernstein has trained more
than 6,000 developers for several Fortune 500 companies on how to
improve their software design and construction. A longtime special
consultant to IBM, he worked on the development of OS/2 and was a key
programmer for IBM’s ImagePlus platform. David trained IBM software
engineers around the world, giving them the skills to write the next
generation of applications and operating-system software, and earning
one of the highest satisfaction ratings in the history of IBM corporate
education. He is the creator of a wholesale bank-accounting software
program that has become the de facto standard across the globe,
as well as econometric software used to invest trillions of dollars.
Over the past five years, David has coached and trained thousands of
developers at Microsoft, Boeing, Vanguard and dozens of other companies
in Agile development practices.
Register for another one of our public classes or contact us to schedule a private class for your group.
FOR MORE INFORMATION CONTACT
David Bernstein
Email: info@techniquesofdesign.com
Or Visit: http://www.techniquesofdesign.com
Note: Seating is limited and these classes fill up quickly.
When & Where
City of Chandler Community Center
125 East Commonwealth Avenue
Room 101
Chandler,
AZ 85244
Wednesday, March 23, 2011 at 9:00 AM - Friday, March 25, 2011 at 5:00 PM (MT)
Add to my calendar
Hosted By
Techniques of Design
As a Registered Education Provider for the Scrum Alliance Techniques of Design now offers Certified Scrum Developer (CSD) training. We also offers agile software development training, object oriented analysis and design training and design patterns training plus coaching and consulting services to help your technical team become more agile.
FOR MORE INFORMATION CONTACT
David Bernstein
Phone: (206) 659-8711
Or Visit: http://www.techniquesofdesign.com