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. |