Free Webinar: Writing High Quality Code -- Monday, December 10, 2012
Monday, December 10, 2012 from 1:00 PM to 3:00 PM (PST)
This 90 minute free webinar (with an optional 30 minutes at the end for Q&A) will help you quantify software qualities. Quality in delivered software is intangible and very different from quality in physical goods. Some external attributes of quality software—free from defects and easy to maintain—are reflections of the code’s internal qualities. When classes and methods are cohesive, non-redundant, well-encapsulated, assertive, and explicitly coupled, they are less prone to mistakes and far easier to debug, test, and maintain. David Bernstein asserts that paying attention to code quality helps us focus on the key principles, patterns, and practices used by expert developers. If you don’t pay attention to critical code quality attributes, iterative development practices can quickly degrade code into a maintenance nightmare. Join David and take a deep dive into the code qualities that make software more maintainable and less bug friendly. Create software that not only provides value now but also is easy to change and extend so it can continue to deliver value far into the future.
Attending this webinar will show you how to create higher quality software that will enable you to:
- Employ techniques that reduce defects
- Quickly implement effective design alternatives
- Collaborate more smoothly with other team members
- See how testability directly reflects software quality
- Establish standards and practices for building software
- Avoid upfront overdesign and build just-in-time
- Support an iterative process without excessive rework
- Support collaborative code ownership and embrace a common aesthetic
Who Should Attend
This training is for all team members, and will benefit architects; designers and developers; development and product managers; software engineers/programmers; testers and QA engineers; and technical analysts, leads, and writers. Familiarity with basic Object-Oriented (OO) concepts and terminology is recommended.
- What is Quality? - Quality in Goods and Services; Software Quality is Different; Correctness Isn’t Enough; Maintainability; Change Happens; Dealing with Change; Changeable Code; Code Pathologies; Larger Projects are Harder; Quality in Software; Six Specific Code Qualities
- Cohesive - What is Cohesion? Language and Software; Class Cohesion; Method Cohesion; Pathologies of Poor Cohesion
- Non-Redundant - Finding Redundancy; Type is Redundancies; Can Non-Identical Code be Redundant? Can Identical Code be Non-Redundant? Redundant Intent; Code Investment or Code Debt; Pathologies of Redundancy
- Encapsulated - What Can Be Encapsulated? What You don’t Know Can’t Hurt You; Encapsulate by Policy; Optimizing for Performance; Can You Encapsulate it? Many Ways to Encapsulate; Pathologies of Poor Encapsulation
- Assertive - Being Assertive; Assertive or Inquisitive; Prefer Assertiveness; Pathologies of Inquisitiveness
- Testable - Code Must Be Testable; Testability Guiding Design; Pathologies of Poor Testability
- Explicit - What are Explicit Relationships? Good Coupling and Bad Coupling; Kinds of Coupling; Coupling Example; Pathologies of Bad Coupling
- Conclusion - The Six Code Qualities; CREATE Quality Software; Code Qualities Guide Us; Thank You!
David Bernstein’s continuing passion for software design and construction has led him to train more than 7,500 developers in the last 23 years 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, David 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, he has devoted his consulting practice to providing organizations with training and coaching for software developers and teams transitioning to Agile and Scrum.
View a pdf version of this webinar description.
To Be Agile
As a Registered Education Provider for the Scrum Alliance To Be Agile 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
Email: david (at) ToBeAgile (dot) com
Phone: (206) 792-9700
Or Visit: http://ToBeAgile.com