Onward


In this chapter, I tried to make a case for reading the rest of this book. Some promises have been made, including that object thinking will make you a much better software developer and that object thinking will make you a much better XP practitioner.

The journey toward mastery of object thinking is not direct. I will ask you to take a short detour into history and philosophy in order to develop the context from which object thinking emerges. This context should make it easier to understand the advocacy of behaviorism as well as why terms and concepts are developed as they are in later chapters.

A secondary, and in many ways more important, reason for looking at philosophy and history is to establish in the reader s mind the themes and principles that can help you expand and shape the details of object thinking to accommodate new situations. It s my hope that you learn object thinking not by rote but by actively and creatively applying ideas, concepts, and philosophical principles.

Object thinking predates agile thinking, and both share deep common roots. Object thinking and agile development, especially extreme programming, are natural partners , sharing values and following common practices. Understanding these commonalities at the level of ideas and values is essential to the mastery of both. Exploration of these similarities will allow you to develop synergies of thinking and to become more agile.

Welcome to the journey.

start sidebar
Forward Thinking ”Introduction

The first five chapters of this book introduce a lot of ideas and background information that are fundamental to object thinking. As critical as these ideas are, many readers will find themselves anxious to get to the material that illustrates application of the ideas. This continuing sidebar ”an example application problem ”will partially satisfy the urge to get to the good stuff while providing illustration of the ideas presented in early chapters.

Be forewarned: the example may involve concepts and models that have not been introduced in the main text. You may have to take a few things on faith until they are discussed properly.

Problem Statement: The Universal Vending Machine Project

It s your first big XP project ”you are to head a team building the software for a better vending machine. Vending machine sales are flat, but your CEO notes that in Japan almost anything can be purchased from vending machines, and in Scandinavia people can buy products from machines using their cell phones. The hardware side of the company is busy designing and building customized vending machines of all types, and your team is to develop a common software base to run every type of vending machine they might come up with.

The Universal Vending Machine (UVM) will be capable of dispensing liquids as well as packages (cans or products in wrappers of various kinds). Payment can be made using any or all of three kinds of currency and coins (U.S. dollars, euros, and yen), debit cards (including a line of prepaid debit cards sold by your company), and credit cards. Customers can purchase goods from the machine via a Web-based transaction ”also using debit and credit cards. Each vending machine will initiate product reordering via the Web. Restocking will be adjusted based on demand ”which products sell the most in the least amount of time.

To save money, your team will create a single program, one capable of supporting the entire line of planned UVMs.

Given that this is an XP project, your customer will provide you with stories, and you will write tests and code programs. Getting from stories to code requires a fair amount of thinking, some open discussion, definition of tests, occasional writing of notes, and drawing of diagram fragments . Fortunately, you and your team are conversant in object thinking, so this will not present an insurmountable challenge.

end sidebar
 



Microsoft Object Thinking
Object Thinking (DV-Microsoft Professional)
ISBN: 0735619654
EAN: 2147483647
Year: 2004
Pages: 88
Authors: David West

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net