Pugh-Killeen Logo

Talks

Home | Contact Us

We have given numerous talks to national and local conferences. These talks can be presented at your conference or meeting.

 

Human Centric Development The Agile Manifesto values individuals and interactions over processes and tools. In using a process, whether it be XP, RUP or anything in-between, you should examine how the personalities of team members interact with the process. How do you adopt a process that is compatible with the personalities of your team members? Do you adapt a process to be compatible or have team members self-select themselves into a process with which they are compatible? We'll investigate the answers to these questions in this session.
That's An Object? I Object!   Participants play the simultaneous roles of prosecutor, defense attorney, and jury. Object designs are placed on trial. The prosecutors argue why a particular design is criminal, the defense attorneys plead why it is a good design, and the jury decides on the verdict. You are welcome to bring charges against a design by presenting it for indictment. Object design implementation samples will be in C++, C#, and Java.
Designing for Testing Extreme programming emphasizes test-first coding. You write the tests before writing the implementation. If you are designing a complex system, it's usually easier to architect the system for testing than it is to add testing as an afterthought. Test outputs, test-only inputs, regression testing, and logging will be some of the topics covered during this session.
Quarks, Protons, and Molecules - Principles Behind the Patterns Object-oriented design patterns embody numerous design principles that are found in programming. This class dissects patterns into these principles. The results can be used to better understand the patterns and to help create new patterns.
Design Patterns in C++ Object-oriented design patterns are reusable solutions to common problems. Using patterns can help you create designs faster and in a more consistent manner. In this session, we examine some of the basic design patterns from the GOF book. Their implementations are expressed in C++.
Design Patterns in C# Object-oriented design patterns are reusable solutions to common problems. Using patterns can help you create designs faster and in a more consistent manner. In this session, we examine some of the basic design patterns from the GOF book. Their implementations are expressed in C#.
Design Patterns in Java Object-oriented design patterns are reusable solutions to common problems. Using patterns can help you create designs faster and in a more consistent manner. In this session, we examine some of the basic design patterns from the GOF book. Their implementations are expressed in Java
Simplicity - Is It That Complicated? A common factor in Agile Development is simplicity. Kent Beck in his XP Programming book presents his definition of simple code. The agile principles state another - "the art of maximizing the amount of work not done". In this session, we explore both code and process simplicity. Then we examine alternative approaches to writing simple code. Finally we investigate heavy and lightweight processes and how they can be simplified.
From Abstract Dream to Concrete Realization We'll use the process of specifying and designing a house to explore the issues faced in Agile Development. Some participants will play the role of customers, others will perform as developers in turning the dreams and stories of the customers into reality. Along the way, we'll delve into the interactions between the two groups
The HTTP Protocol - Talking the Talk
In this session, we explore the HTTP Protocol which underlies the Web. Topics include the information that the browser supplies with a request, the data included in a response, and how to manipulate both. You'll be able to create your own custom URL requests that will delight and astound web servers.
TCP/IP Programming in C++ This is a three-part talk. The first part outlines the TCP/IP protocol. We examine the TCP and IP headers and the exchange of packets between client and server. The second segment describes the standard C version of socket programming. The third section covers Rogue Wave and MFC C++ implementations of sockets.
TCP/IP Programming in Java This session starts with an outline of the TCP/IP protocol. We examine the TCP and IP headers and the exchange of packets between client and server. Then we explore how to use Socket, ServerSocket, and associated classes to build a simple client-server system. Finally, we take a look at a multi-threaded server.
Prefactoring This session was inspired by Martin Fowler's Refactoring, William Brown's AntiPatterns, the Gang of Four's Design Patterns, and Kerth's Retrospectives. It explores how the experiences of one project can help avoid the false starts of the next. Next we examine how design patterns can alleviate the need for refactoring. Then we investigate possible reasons why code gets to "smell bad". You can share refactoring experiences - both good and bad.
Security in an Insecure World A secure system, according to Garfinkel, "is one you can depend on to behave as you expected". . Security is better if it is designed into a system, rather than added afterwards. We first explore developing security policies for your systems and dig into security techniques. The session then examines the tradeoff between security and freedom. Finally comes an investigation as to how to develop relatively secure systems and how to prevent insecure ones.

Copyright (c) 1996-2007 Pugh-Killeen Associates

Home Services Solutions Classes Resources About Us Contact Us Legal