| Search | About | Preferences | Interact | Help | |
| 150 million books. 1 search engine. | ||

› Find signed collectible books: 'Advanced .Net Remoting'
› Find signed collectible books: 'Agile and Iterative Development: A Manager's Guide'
NA [via]
More editions of Agile and Iterative Development: A Manager's Guide:
› Find signed collectible books: 'Agile Project Management With Scrum'
The rules and practices for Scruma simple process for managing complex projectsare few, straightforward, and easy to learn. But Scrums simplicity itselfits lack of prescriptioncan be disarming, and new practitioners often find themselves reverting to old project management habits and tools and yielding lesser results. In this illuminating series of case studies, Scrum co-creator and evangelist Ken Schwaber identifies the real-world lessonsthe successes and failuresculled from his years of experience coaching companies in agile project management. Through them, youll understand how to use Scrum to solve complex problems and drive better resultsdelivering more valuable software faster.
Gain the foundation in Scrum theoryand practiceyou need to:
More editions of Agile Project Management With Scrum:

› Find signed collectible books: 'Agile Software Development'
More editions of Agile Software Development:

› Find signed collectible books: 'Agile Software Development: The Cooperative Game'
More editions of Agile Software Development: The Cooperative Game:
› Find signed collectible books: 'Agile Web Development With Rails'
The definitive, Jolt-award winning guide to learning and using Rails is now in its Second Edition. Rails is a new approach to web-based application development that enables developers to create full-featured, sophisticated web-based applications using less code and less effort. Now programmers can get the job done right and still leave work on time.
NEW IN THE SECOND EDITION: The book has been updated to take advantage of all the new Rails 1.2 features. The sample application uses migrations, Ajax, features a REST interface, and illustrates new Rails features. There are new chapters on migrations, active support, active record, and action controller (including the new resources-based routing). The Web 2.0 and Deployment chapters have been completely rewritten to reflect the latest thinking. Now you can learn which environments are best for your style application, and see how Capistrano makes managing your site simple. All the remaining chapters have been extensively updated. Finally, hundreds of comments from readers of the first edition have been incorporated, making this book simply the best available.
Rails is a full-stack, open source web framework that enables you to create full-featured, sophisticated web-based applications with a twist...you can create a full Rails application using less code than the setup XML you'd need just to configure some other frameworks.
With this book, you'll learn how to use Rails Active Record to connect business objects and database tables. No more painful object-relational mapping. Just create your business objects and let Rails do the rest. You'll learn how to use the Action Pack framework to route incoming requests and render pages using easy-to-write templates and components. See how to exploit the Rails service frameworks to send emails, talk to web services, and interact dynamically with JavaScript applications running in the browser (the "Ajax" architecture).
You'll see how easy it is to deploy Rails. You'll be writing applications that work with your favorite database (MySQL, Oracle, Postgres, and more) in no time at all.
More editions of Agile Web Development With Rails:
› Find signed collectible books: 'Agile Web Development With Rails: A Pragmatic Guide'
Rails is a full-stack, open source web framework that enables you to create full-featured, sophisticated web-based applications, but with a twist... A full Rails application probably has less total code than the XML you'd need to configure the same application in other frameworks.
With this book you'll learn how to use ActiveRecord to connect business objects and database tables. No more painful object-relational mapping. Just create your business objects and let Rails do the rest. You'll learn how to use the Action Pack framework to route incoming requests and render pages using easy-to-write templates and components. See how to exploit the Rails service frameworks to send emails, implement web services, and create dynamic, user-centric web-pages using built-in Javascript and Ajax support. There are extensive chapters on testing, deployment, and scaling.
You'll see how easy it is to install Rails using your web server of choice (such as Apache or lighttpd) or using its own included web server. You'll be writing applications that work with your favorite database (MySQL, Oracle, Postgres, and more) in no time at all.
You'll create a complete online store application in the extended tutorial section, so you'll see how a full Rails application is developed---iteratively and rapidly.
Rails strives to honor the Pragmatic Programmer's "DRY Principle" by avoiding the extra work of configuration files and code annotations. You can develop in real-time: make a change, and watch it work immediately.
Forget XML. Everything in Rails, from templates to control flow to business logic, is written in Ruby, the language of choice for programmers who like to get the job done well (and leave work on time for a change).
Rails is the framework of choice for the new generation of Web 2.0 developers. Agile Web Development with Rails is the book for that generation, written by Dave Thomas (Pragmatic Programmer and author of Programming Ruby) and David Heinemeier Hansson, who created Rails.
More editions of Agile Web Development With Rails: A Pragmatic Guide:
› Find signed collectible books: 'Analysis Patterns: Reusable Object Models'
Patterns are higher-order designs that can be reused across projects and types of computer systems. Analysis Patterns: Reusable Object Models defines over 70 patterns, beginning with some from the business world, such as the Party and Accountability patterns, which define the players in organizations and whom they report to. Many of the other patterns are drawn from the health care industry and mainly show patterns of doctor-patient interactions.
The patterns for financial markets will probably be accessible for the majority of readers. Author Martin Fowler defines a Transaction pattern (and related patterns) as well as several patterns for the Accounting of Objects. He moves on to modeling stock markets with Portfolio, Quote, and Scenario patterns, which define how a price for a stock is determined for a given moment. Interestingly, he establishes patterns for Forward Contracts (for derivatives) as well as Options, and so takes on a complicated area in today's financial markets.
Fowler's considerable design experience in these fields is beneficial, as he is able to define each pattern in both text and software engineering diagrams. Only rarely does the author provide implementations of these designs and those that are furnished are done in Smalltalk, which makes this book more suitable for those who have experience in object design. [via]
More editions of Analysis Patterns: Reusable Object Models:
› Find signed collectible books: 'Applying Uml and Patterns: An Introduction to Object-Oriented Analysis and Design, and the Unified Process'
An introduction to object-oriented analysis and design with UML, this work teaches object-oriented analysis and design (OOA/D) through three iterations of two cohesive, start-to-finish case studies. It teaches how to apply UML in the context of OO software development. [via]
More editions of Applying Uml and Patterns: An Introduction to Object-Oriented Analysis and Design:
› Find signed collectible books: 'The Art Of Project Management'
The Art of Project Management covers it all--from practical methods for making sure work gets done right and on time, to the mindset that can make you a great leader motivating your team to do their best. Reading this was like reading the blueprint for how the best projects are managed at Microsoft... I wish we always put these lessons into action!" --Joe Belfiore, General Manager, E-home Division, Microsoft Corporation
"Berkun has written a fast paced, jargon-free and witty guide to what he wisely refers to as the 'art' of project management. It's a great introduction to the discipline. Seasoned and new managers will benefit from Berkun's perspectives." --Joe Mirza, Director, CNET Networks (Cnet.com)
"Most books with the words 'project management' in the title are dry tomes. If that's what you are expecting to hear from Berkun's book, you will be pleasantly surprised. Sure, it's about project management. But it's also about creativity, situational problem-solving, and leadership. If you're a team member, project manager, or even a non-technical stakeholder, Scott offers dozens of practical tools and techniques you can use, and questions you can ask, to ensure your projects succeed." --Bill Bliss, Senior VP of product and customer experience, expedia.com
In The Art of Project Management, you'll learn from a veteran manager of software and web development how to plan, manage, and lead projects. This personal account of hard lessons learned over a decade of work in the industry distills complex concepts and challenges into practical nuggets of useful advice. Inspiring, funny, honest, and compelling, this is the book you and your team need to have within arms reach. It will serve you well with your current work, and on future projects to come.
Topics include:
More editions of The Art Of Project Management:
› Find signed collectible books: 'C Programming Language'
Just about every C programmer I respect learned C from this book. Unlike many of the 1,000 page doorstops stuffed with CD-ROMs that have become popular, this volume is concise and powerful (if somewhat dangerous)--like C itself. And it was written by Kernighan himself. Need we say more? --Amazon.com [via]
More editions of C Programming Language:
› Find signed collectible books: 'The C Programming Language: ANSI C Version'
An indisputably classic computing text, Kernighan and Ritchie's The C Programming Language, 2nd Edition, is the standard reference for learning and using ANSI C. Written by the co-inventors of C, this concise tutorial has a well-deserved reputation for clarity and precision as it defines one of the most successful programming languages of all time. It's an essential reference, which will be useful for beginners and experienced programmers alike.
This masterful tour of C features concentrates on essential programming constructs, from the basics--such as data types, variables, operators and flow control--to more advanced topics. Short, effective programming samples are the rule here. (Many samples work with strings and text files). Along the way, the authors don't shy away from the thornier C topics. For example, when discussing pointers, they look at pointers to pointers and even pointers to functions. Later in the book, they offer useful code for a flexible memory allocation scheme and a binary tree. The text concludes with the formal specification for C and a compact listing of the functions in the C standard header files.
C is still a great first programming language, and its influence is felt in Java and C++, both of which support many programming constructs based on C, while adding support for objects. The C Programming Language is still an excellent reference to one of our most successful and efficient programming languages. It's a book that deserves a place on the bookshelf of any C/C++ developer, regardless of your experience with the language. --Richard Dragan, Amazon.com
Topics covered:
More editions of The C Programming Language: ANSI C Version:

› Find signed collectible books: 'The C++ Programming Language'
More than three-quarters of a million programmers have benefited from this book in all of its editions Written by Bjarne Stroustrup, the creator of C++, this is the world's most trusted and widely read book on C++. For this special hardcover edition, two new appendixes on locales and standard library exception safety (also available at www.research.att.com/~bs/) have been added. The result is complete, authoritative coverage of the C++ language, its standard library, and key design techniques. Based on the ANSI/ISO C++ standard, The C++ Programming Language provides current and comprehensive coverage of all C++ language features and standard library components. For example: abstract classes as interfaces class hierarchies for object-oriented programming templates as the basis for type-safe generic software exceptions for regular error handling namespaces for modularity in large-scale software run-time type identification for loosely coupled systems the C subset of C++ for C compatibility and system-level work standard containers and algorithms standard strings, I/O streams, and numerics C compatibility, internationalization, and exception safety Bjarne Stroustrup makes C++ even more accessible to those new to the language, while adding advanced information and techniques that even expert C++ programmers will find invaluable. [via]
More editions of The C++ Programming Language:
› Find signed collectible books: 'Code Complete'
Whether you're a new developer seeking a sound introduction to the practice of software development or a veteran exploring strategic new approaches to problem solving, you'll find a wealth of practical suggestions and methods for strengthening your skills. [via]
More editions of Code Complete:
› Find signed collectible books: 'Code Complete: A Practical Handbook of Software Construction'
Dieser Titel ist in englischer Sprache.
Code Complete, ein moderner Klassiker der Softwareentwicklung, konzentriert sich auf spezielle Techniken zur Verbesserung von Programmierung und Fehlerkorrektur und ermöglicht Ihnen somit die Entwicklung besserer und effizienterer Programme in weniger Zeit. Durch eine Vielzahl an Tips verbessert das Buch ihre Fähigkeit zur Erstellung eleganter, selbsterklärender und erweiterbarer Software. McConnell geht dabei nicht auf die Besonderheiten einzelner Programmiersprachen ein, sondern konzentriert sich auf häufige Programmierprobleme: die sinnvolle Erstellung von Unterroutinen und Variablen, den Entwurf von Kontrollstrukturen, das Auffinden und die Korrektur von Fehlern im Programmcode und vieles mehr. Code Complete enthält neben einer Fülle von Beispielcodes, die sowohl gute als auch schlechte Programmiertechniken veranschaulichen, auch Checklisten zur Überprüfung der eigenen Arbeit. [via]
More editions of Code Complete: A Practical Handbook of Software Construction:

› Find signed collectible books: 'Coder to Developer: Tools and Strategies for Delivering Your Software'
More editions of Coder to Developer: Tools and Strategies for Delivering Your Software:
› Find signed collectible books: 'Crystal Clear: A Human-powered Methodology For Small Teams'
This book introduces Crystal Clear, a better lightweight methodology for building software. It describes the roles, teams, values, intentions, habits, activities, policies and work products of a small software development team for whom time-to-market and development costs are critical considerations. Alistair Cockburn is one of the founders of the Agile software development movement. He spells out proven best practices based on his extensive experience helping organizations build software quickly and with less cost. The author understands that small teams cannot be burdened by "process-heavy" software methodologies. By advocating that developers stay close together and remain in steady, good-will communication with customers and users, this book teaches the reader how to develop software that not only does what it is supposed to do, but also gets completed on time and within budget. [via]
More editions of Crystal Clear: A Human-powered Methodology For Small Teams:
› Find signed collectible books: 'The Deadline'
[ THE DEADLINE A NOVEL ABOUT PROJECT MANAGEMENT BY DEMARCO, TOM](AUTHOR)PAPERBACK [via]
More editions of The Deadline:
› Find signed collectible books: 'Death March'
Death march projects are becoming increasingly common in the software industry. The symptoms are obvious: The project schedule, budget, and staff are about half of what is necessary for completion. The planned feature set is unrealistic. People are working 14 hours a day, six or seven days a week, and stress is taking its toll. The project has a high risk of failure, yet management is either blind to the situation or has no alternative. Why do these irrational projects happen, and what, other than pure idiocy, leads people to get involved in them?
Edward Yourdon has produced a wise and highly readable book on the entire death march phenomenon and the best way to steer through one. He takes a close look at the types of projects that often become death marches and the corporate politics and culture that typically produce them; Yourdon helps you examine your own motivations and those of corporate managers who enable death marches to take shape.
Much of Death March is about the human element of highly stressful projects. The author's plain-spoken observations on the dysfunctional organization--the Machiavellian politics, naive optimism, lust for power, fear, and sheer managerial stupidity that guide so many death marches--make for a refreshing change from other project management books. You'll also find much practical advice to help you survive, everything from negotiating with upper management to breathing life into faltering projects. He'll even help you determine if you should look for another job.
If you've ever worked in a death march situation or been a client of a company addicted to death march management, this book will help you understand what happened. More importantly, it will help you prepare for future encounters with death marches. Death March is highly recommended for anyone involved in software development. [via]
More editions of Death March:
› Find signed collectible books: 'Death March: The Complete Software Developer's Guide to Surviving "Mission Impossible" Projects'
Death march projects are becoming increasingly common in the software industry. The symptoms are obvious: The project schedule, budget, and staff are about half of what is necessary for completion. The planned feature set is unrealistic. People are working 14 hours a day, six or seven days a week, and stress is taking its toll. The project has a high risk of failure, yet management is either blind to the situation or has no alternative. Why do these irrational projects happen, and what, other than pure idiocy, leads people to get involved in them?
Edward Yourdon has produced a wise and highly readable book on the entire death march phenomenon and the best way to steer through one. He takes a close look at the types of projects that often become death marches and the corporate politics and culture that typically produce them; Yourdon helps you examine your own motivations and those of corporate managers who enable death marches to take shape.
Much of Death March is about the human element of highly stressful projects. The author's plain-spoken observations on the dysfunctional organization--the Machiavellian politics, naive optimism, lust for power, fear, and sheer managerial stupidity that guide so many death marches--make for a refreshing change from other project management books. You'll also find much practical advice to help you survive, everything from negotiating with upper management to breathing life into faltering projects. He'll even help you determine if you should look for another job.
If you've ever worked in a death march situation or been a client of a company addicted to death march management, this book will help you understand what happened. More importantly, it will help you prepare for future encounters with death marches. Death March is highly recommended for anyone involved in software development. [via]
More editions of Death March: The Complete Software Developer's Guide to Surviving "Mission Impossible" Projects:
› Find signed collectible books: 'Debugging the Development Process: Practical Strategies for Staying Focused, Hitting Ship Dates, and Building Solid Teams'
More editions of Debugging the Development Process: Practical Strategies for Staying Focused, Hitting Ship Dates, and Building Solid Teams:
› Find signed collectible books: 'Decline & Fall of the American Programmer'
In this work, Ed Yourdon demonstrates how US software organizations can become world-class shops if they exploit the key software technologies of the 1990s. These technologies include object-oriented methods, CASE tools, software quality assurance, structured methods, software metrics, and re-engineering. Separate chapters are devoted to each of these technologies. Each chapter can be read on its own, and the associated software technology discussed in a given chapter can be implemented by an organization without necessarily implementing any other technology. However, the sequence of chapters reflects Yourdon's opinion about the ideal order in which critical issues should be tackled by an organization. Perhaps the most important issues discussed in the book are the "peopleware" issues crucial to running an efficient software development operation: effective hiring practices, training methods, motivational strategies, performance management procedures, and project team co-ordination. Filled with debate and commentary from international software development consultants and experts, this book demonstrates to US programmers, analysts, software engineers as well as to those in management positions, how to take advantaged of productivity improvements techniques practiced by world-class software development shops in Japan and the Far East, Europe, and Latin America. [via]
More editions of Decline & Fall of the American Programmer:
› Find signed collectible books: 'Design Patterns: Elements of Reusable Object-Oriented Software'
Published in 1995, design patterns: elements of reusable object-oriented software has elicited a great deal of praise from the press and readers. The 23 patterns contained in the book have become an essential resource for anyone developing reusable software designs. In response to a great number of requests from readers of the book and from the object-oriented community as a whole, these designs patterns, along with the entire text of the book, are being made available on cd. This electronic version will enable students to install the patterns directly onto a computer and create an architecture for using and building reusable components. Produced in html format, the cd is heavily cross-referenced with numerous links to the online text [via]
More editions of Design Patterns: Elements of Reusable Object-Oriented Software:
› Find signed collectible books: 'Domain-Driven Design: Tackling Complexity in the Heart of Software'
eric evans has written a fantastic book on how you can make the design of your software match your mental model of the problem domain you are addressing. "his book is very compatible with xp. It is not about drawing pictures of a domain; it is about how you think of it, the language you use to talk about it, and how you organize your software to reflect your improving understanding of it. Eric thinks that learning about your problem domain is as likely to happen at the end of your project as at the beginning, and so refactoring is a big part of his technique. "the book is a fun read. Eric has lots of interesting stories, and he has a way with words. I see this book as essential reading for software developers-it is a future classic." -ralph johnson, author of design patterns "if you don't think you are getting value from your investment in object-oriented programming, this book will tell you what you've forgotten to do."eric evans convincingly argues for the importance of domain modeling as the central focus of development and provides a solid framework and set of techniques for accomplishing it. This is timeless wisdom, and will hold up long after the methodologies du jour have gone out of fashion." -dave collins, author of designing object-oriented user interfaces "eric weaves real-world experience modeling-and building-business applications into a practical, useful book. Written from the perspective of a trusted practitioner, eric's descriptions of ubiquitous language, the benefits of sharing models with users, object life-cycle management, logical and physical application structuring, and the process and results of deep refactoring are major contributions to our field." -luke hohmann, author of beyond software architecture "this book belongs on the shelf of every thoughtful software developer. [via]
More editions of Domain-Driven Design: Tackling Complexity in the Heart of Software:
› Find signed collectible books: 'Dynamics of Software Development'
More editions of Dynamics of Software Development:
› Find signed collectible books: 'Effective C++: 50 Specific Ways to Improve Your Programs and Designs'
This exceptionally useful text offers Scott Myers's expertise in C++ class design and programming tips. The second edition incorporates recent advances to C++ included in the ISO standard, including namespaces and built-in template classes, and is required reading for any working C++ developer.
The book opens with some hints for porting code from C to C++ and then moves on to the proper use of the new and delete operators in C++ for more robust memory management. The text then proceeds to class design, including the proper use of constructors, destructors, and overloaded operator functions for assignment within classes. (These guidelines ensure that you will create custom C++ classes that are fully functional data types, which can be copied and assigned just like built-in C++ classes.)
The author also provides a handful of suggestions for general class design, including strategies for using different types of inheritance and encapsulation. Never doctrinaire and always intelligent, these guidelines can make your C++ classes more robust and easier to maintain. --Richard Dragan [via]
More editions of Effective C++: 50 Specific Ways to Improve Your Programs and Designs:
› Find signed collectible books: 'Effective C++: 55 Specific Ways To Improve Your Programs And Designs'
Organized around 55 specific guidelines, each of which describes a way to write better C++, this book reflects on modern design considerations, including exceptions, design patterns, and multithreading. It also provides guidance on the design of effective classes, functions, templates, and inheritance hierarchies. [via]
More editions of Effective C++: 55 Specific Ways To Improve Your Programs And Designs:
› Find signed collectible books: 'Effective Java: Programming Language Guide'
Written for the working Java developer, Joshua Bloch's Effective Java Programming Language Guide provides a truly useful set of over 50 best practices and tips for writing better Java code. With plenty of advice from an indisputable expert in the field, this title is sure to be an indispensable resource for anyone who wants to get more out of their code.
As a veteran developer at Sun, the author shares his considerable insight into the design choices made over the years in Sun's own Java libraries (which the author acknowledges haven't always been perfect). Based on his experience working with Sun's best minds, the author provides a compilation of 57 tips for better Java code organized by category. Many of these ideas will let you write more robust classes that better cooperate with built-in Java APIs. Many of the tips make use of software patterns and demonstrate an up-to-the-minute sense of what works best in today's design. Each tip is clearly introduced and explained with code snippets used to demonstrate each programming principle.
Early sections on creating and destroying objects show you ways to make better use of resources, including how to avoid duplicate objects. Next comes an absolutely indispensable guide to implementing "required" methods for custom classes. This material will help you write new classes that cooperate with old ones (with advice on implementing essential requirements like the equals() and hashCode() methods).
The author has a lot to say about class design, whether using inheritance or composition. Tips on designing methods show you how to create understandable, maintainable, and robust classes that can be easily reused by others on your team. Sections on mapping C code (like structures, unions, and enumerated types) onto Java will help C programmers bring their existing skills to Sun's new language. Later sections delve into some general programming tips, like using exceptions effectively. The book closes with advice on using threads and synchronization techniques, plus some worthwhile advice on object serialization.
Whatever your level of Java knowledge, this title can make you a more effective programmer. Wisely written, yet never pompous or doctrinaire, the author has succeeded in packaging some really valuable nuggets of advice into a concise and very accessible guidebook that arguably deserves a place on most any developer's bookshelf. --Richard Dragan
Topics covered:
More editions of Effective Java: Programming Language Guide:
› Find signed collectible books: 'Exploring Requirements: Quality Before Design'
The scholar John von Neumann once said, "There's no sense being exact about something if you don't even know what you're talking about." In a world that is growing increasingly dependent on highly complex, computer-based systems, the importance of defining what you want to make before making it -- that is, knowing what you're talking about -- cannot be stressed enough.
Here's an innovative book that gives you the understanding you need to give people the solutions they want. The collaborative team of Gause and Weinberg tells how you can assure the requirements are right -- before the product is designed.
Written by two recognized authorities in the field, this book is a collection of ideas developed, refined, and tested during their more than sixty combined years of work with both large and small organizations.
The techniques formulated in Exploring Requirements are not confined to software development; they have been used effectively to develop a wide range of products and systems -- from computer software to furniture, books, and buildings.
Systems analysts and anyone involved with the challenges of the requirements process will greatly benefit from this book. [via]
More editions of Exploring Requirements: Quality Before Design:

› Find signed collectible books: 'Extreme Programming Applied: Playing to Win'
More editions of Extreme Programming Applied: Playing to Win:
› Find signed collectible books: 'Extreme Programming Explained: Embrace Change'
In this second edition of Extreme Programming Explained, Kent Beck organizes and presents five years worth of experiences, growth, and change revolving around XP. If you are seriously interested in understanding how you and your team can start down the path of improvement with XP, you must read this book.
Francesco Cirillo, Chief Executive Officer, XPLabs S.R.L.
The first edition of this book told us what XP wasit changed the way many of us think about software development. This second edition takes it farther and gives us a lot more of the why of XP, the motivations and the principles behind the practices. This is great stuff. Armed with the what and the why, we can now all set out to confidently work on the how: how to run our projects better, and how to get agile techniques adopted in our organizations.
Dave Thomas, The Pragmatic Programmers LLC
This book is dynamite! It was revolutionary when it first appeared a few years ago, and this new edition is equally profound. For those who insist on cookbook checklists, theres an excellent chapter on primary practices, but I urge you to begin by truly contemplating the meaning of the opening sentence in the first chapter of Kent Becks book: XP is about social change. You should do whatever it takes to ensure that every IT professional and every IT managerall the way up to the CIOhas a copy of Extreme Programming Explained on his or her desk.
Ed Yourdon, author and consultant
XP is a powerful set of concepts for simplifying the process of software design, development, and testing. It is about minimalism and incrementalism, which are especially useful principles when tackling complex problems that require a balance of creativity and discipline.
Michael A. Cusumano, Professor, MIT Sloan School of Management, and author of The Business of Software
Extreme Programming Explained is the work of a talented and passionate craftsman. Kent Beck has brought together a compelling collection of ideas about programming and management that deserves your full attention. My only beef is that our profession has gotten to a point where such common-sense ideas are labeled extreme....
Lou Mazzucchelli, Fellow, Cutter Business Technology Council
If your organization is ready for a change in the way it develops software, theres the slow incremental approach, fixing things one by one, or the fast track, jumping feet first into Extreme Programming. Do not be frightened by the name, it is not that extreme at all. It is mostly good old recipes and common sense, nicely integrated together, getting rid of all the fat that has accumulated over the years.
Philippe Kruchten, UBC, Vancouver, British Columbia
Sometimes revolutionaries get left behind as the movement they started takes on a life of its own. In this book, Kent Beck shows that he remains ahead of the curve, leading XP to its next level. Incorporating five years of feedback, this book takes a fresh look at what it takes to develop better software in less time and for less money. There are no silver bullets here, just a set of practical principles that, when used wisely, can lead to dramatic improvements in software development productivity.
Mary Poppendieck, author of Lean Software Development: An Agile Toolkit
Kent Beck has revised his classic book based on five more years of applying and teaching XP. He shows how the path to XP is both easy and hard: It can be started with fewer practices, and yet it challenges teams to go farther than ever.
William Wake, independent consultant
With new insights, wisdom from experience, and clearer explanations of the art of Extreme Programming, this edition of Becks classic will help many realize the dream of outstanding software development.
Joshua Kerievsky, author of Refactoring to Patterns and Founder, Industrial Logic, Inc.
XP has changed the way our industry thinks about software development. Its brilliant simplicity, focused execution, and insistence on fact-based planning over speculation have set a new standard for software delivery.
David Trowbridge, Architect, Microsoft Corporation
Accountability. Transparency. Responsibility. These are not words that are often applied to software development.
In this completely revised introduction to Extreme Programming (XP), Kent Beck describes how to improve your software development by integrating these highly desirable concepts into your daily development process.
The first edition of Extreme Programming Explained is a classic. It won awards for its then-radical ideas for improving small-team development, such as having developers write automated tests for their own code and having the whole team plan weekly. Much has changed in five years. This completely rewritten second edition expands the scope of XP to teams of any size by suggesting a program of continuous improvement based on:
Whether you have a small team that is already closely aligned with your customers or a large team in a gigantic or multinational organization, you will find in these pages a wealth of ideas to challenge, inspire, and encourage you and your team members to substantially improve your software development.
You will discover how to:
You will also find many other concrete ideas for improvement, all based on a philosophy that emphasizes simultaneously increasing the humanity and effectiveness of software development.
Every team can improve. Every team can begin improving today. Improvement is possiblebeyond what we can currently imagine. Extreme Programming Explained, Second Edition, offers ideas to fuel your improvement for years to come.
More editions of Extreme Programming Explained: Embrace Change:
› Find signed collectible books: 'Extreme Programming Installed'
Extreme Programming (XP) is a revolutionary lightweight methodology that's supercharging software development in organizations worldwide. Perfect for small teams producing software with fast-changing requirements, XP can save time and money while dramatically improving quality. In XP Installed, three participants in DaimlerChrysler's breakthrough XP project cover every key practice associated with XP implementation. The book consists of a connected collection of essays, presented in the order the practices would actually be implemented during a project. Ideal as both a start-to-finish tutorial and quick reference, the book demonstrates exactly how XP can promote better communication, quality, control, and predictability. An excellent complement to the best selling Extreme Programming Explained, it also works perfectly on a standalone basis, for any developer or team that wants to get rolling with XP fast. [via]
More editions of Extreme Programming Installed:
› Find signed collectible books: 'Hackers and Painters'
"The computer world is like an intellectual Wild West, in which you can shoot anyone you wish with your ideas, if you're willing to risk the consequences. " --from Hackers & Painters: Big Ideas from the Computer Age, by Paul Graham
We are living in the computer age, in a world increasingly designed and engineered by computer programmers and software designers, by people who call themselves hackers. Who are these people, what motivates them, and why should you care?
Consider these facts: Everything around us is turning into computers. Your typewriter is gone, replaced by a computer. Your phone has turned into a computer. So has your camera. Soon your TV will. Your car was not only designed on computers, but has more processing power in it than a room-sized mainframe did in 1970. Letters, encyclopedias, newspapers, and even your local store are being replaced by the Internet.
Hackers & Painters: Big Ideas from the Computer Age, by Paul Graham, explains this world and the motivations of the people who occupy it. In clear, thoughtful prose that draws on illuminating historical examples, Graham takes readers on an unflinching exploration into what he calls "an intellectual Wild West."
The ideas discussed in this book will have a powerful and lasting impact on how we think, how we work, how we develop technology, and how we live. Topics include the importance of beauty in software design, how to make wealth, heresy and free speech, the programming language renaissance, the open-source movement, digital design, internet startups, and more.
More editions of Hackers and Painters:
› Find signed collectible books: 'Head First Design Patterns'
You're not alone. At any given moment, somewhere in the world someone struggles with the same software design problems you have. You know you don't want to reinvent the wheel (or worse, a flat tire), so you look to Design Patterns--the lessons learned by those who've faced the same problems. With Design Patterns, you get to take advantage of the best practices and experience of others, so that you can spend your time on...something else. Something more challenging. Something more complex. Something more fun. You want to learn about the patterns that matter--why to use them, when to use them, how to use them (and when NOT to use them). But you don't just want to see how patterns look in a book, you want to know how they look "in the wild". In their native environment. In other words, in real world applications. You also want to learn how patterns are used in the Java API, and how to exploit Java's built-in pattern support in your own code. You want to learn the real OO design principles and why everything your boss told you about inheritance might be wrong (and what to do instead). You want to learn how those principles will help the next time you're up a creek without a design pattern. Most importantly, you want to learn the "secret language" of Design Patterns so that you can hold your own with your co-worker (and impress cocktail party guests) when he casually mentions his stunningly clever use of Command, Facade, Proxy, and Factory in between sips of a martini. You'll easily counter with your deep understanding of why Singleton isn't as simple as it sounds, how the Factory is so often misunderstood, or on the real relationship between Decorator, Facade and Adapter. With Head First Design Patterns, you'll avoid the embarrassment of thinking Decorator is something from the "Trading Spaces" show. Best of all, in a way that won't put you to sleep! We think your time is too important (and too short) to spend it struggling with academic texts. [via]
More editions of Head First Design Patterns:

› Find signed collectible books: 'The Inmates Are Running the Asylum'
More editions of The Inmates Are Running the Asylum:
› Find signed collectible books: 'The Inmates Are Running the Asylum: Why High Tech Products Drive Us Crazy and How to Restore the Sanity'
In this book about the darker side of technology's impact on our lives, Alan Cooper begins by explaining that unlike other devices throughout history, computers have a "meta function:" an unwanted, unforeseen option that users may accidentally invoke with what they thought was a normal keystroke. Cooper details many of these meta functions to explain his central thesis: programmers need to seriously reevaluate the many user-hostile concepts deeply embedded within the software development process.
Rather than provide users with a straightforward set of options, programmers often pile on the bells and whistles and ignore or deprioritize lingering bugs. For the average user, increased functionality is a great burden, adding to the recurrent chorus that plays, "computers are hard, mysterious, unwieldy things." (An average user, Cooper asserts, who doesn't think that way or who has memorized all the esoteric commands and now lords it over others, has simply been desensitized by too many years of badly designed software.)
Cooper's writing style is often overblown, with a pantheon of cutesy terminology (i.e., "dancing bearware") and insider back-patting. (When presenting software to Bill Gates, he reports that Gates replied: "How did you do that?" to which he writes, "I love stumping Bill!") More seriously, he is also unable to see beyond software development's importance--a sin he accuses programmers of throughout the book.
Even with that in mind, the central questions Cooper asks are too important to ignore: Are we making users happier? Are we improving the process by which they get work done? Are we making their work hours more effective? Cooper looks to programmers, business managers, and what he calls "interaction designers" to question current assumptions and mindsets. Plainly, he asserts that the goal of computer usage should be "not to make anyone feel stupid." Our distance from that goal reinforces the need to rethink entrenched priorities in software planning. --Jennifer Buckendorff [via]
More editions of The Inmates Are Running the Asylum: Why High Tech Products Drive Us Crazy and How to Restore the Sanity:
With more than 700,000 copies sold to date, Java in a Nutshell from O'Reilly is clearly the favorite resource amongst the legion of developers and programmers using Java technology. And now, with the release of the 5.0 version of Java, O'Reilly has given the book that defined the "in a Nutshell" category another impressive tune-up. In this latest revision, readers will find Java in a Nutshell, 5th Edition, does more than just cover the extensive changes implicit in 5.0, the newest version of Java. It's undergone a complete makeover--in scope, size, and type of coverage--in order to more closely meet the needs of the modern Java programmer. To wit, Java in a Nutshell, 5th Edition now places less emphasis on coming to Java from C and C++, and adds more discussion on tools and frameworks. It also offers new code examples to illustrate the working of APIs, and, of course, extensive coverage of Java 5.0. But faithful readers take comfort: it still hasn't lost any of its core elements that made it such a classic to begin with. This handy reference gets right to the heart of the program with an accelerated introduction to the Java programming language and its key APIs--ideal for developers wishing to start writing code right away. And, as was the case in previous editions, Java in a Nutshell, 5th Edition is once again chock-full of poignant tips, techniques, examples, and practical advice. For as long as Java has existed, Java in a Nutshell has helped developers maximize the capabilities of the program's newest versions. And this latest edition is no different. [via]
More editions of Java In A Nutshell:
› Find signed collectible books: 'Java in a Nutshell'
With more than 700,000 copies sold to date, "Java in
a Nutshell
from O'Reilly is clearly the favorite resource amongst the legion of
developers and programmers using Java technology. And now, with the
release of the 5.0 version of Java, O'Reilly has given the book that
defined the "in a Nutshell" category another impressive tune-up.
In this latest revision, readers will find "Java in a
Nutshell,
5th Edition does more than just cover the extensive changes implicit in
5.0, the newest version of Java. It's undergone a complete makeover--in
scope, size, and type of coverage--in order to more closely meet the
needs of the modern Java programmer.
To wit, "Java in a Nutshell, 5th Edition
now places less emphasis on coming to
Java from C and C++, and adds more discussion on tools and frameworks.
It also offers new code examples to illustrate the working of APIs,
and, of course, extensive coverage of Java 5.0. But faithful readers
take comfort: it still hasn't lost any of its core elements that made
it such a classic to begin with.
This handy reference gets right to the
heart of the program with an accelerated introduction to the Java
programming language and its key APIs--ideal for developers wishing to
start writing code right away. And, as was the case in previous
editions, Java in a Nutshell, 5th Edition is once again chock-full of
poignant tips, techniques, examples, and practical advice. For as long
as Java has existed, "Java in a Nutshell has helped
developers maximize the capabilities of the program's newest versions.
And this latest edition is no different. [via]
More editions of Java in a Nutshell:
› Find signed collectible books: 'Java in a Nutshell: A Desktop Quick Reference'
The 3rd edition of the well-known reference, Java in a Nutshell, covers the essential APIs of Java 1.2, including networking, security, input and output, and basic language and utility classes. Due to the size of the Java 1.2 API, graphics and graphical user interface classes are now examined in a volume called Java Foundation Classes in a Nutshell, and server-side and enterprise programming are detailed in Java Enterprise in a Nutshell.
Though primarily a reference, the book starts off with a thorough, fast-paced introduction to Java, exploring all the key topics, including syntax, object-oriented programming, security, beans, and tools. These discussions are brief and very information-dense, and if you are buying this book to learn the language, you will probably be overwhelmed by the speed of this initiation.
This book intends to document quite a bit of Java, and it easily succeeds with broad coverage of Java programming in Part I, and API cataloging broken down by package in Part II. For example, discussions in Part I explain Types, Reflection, and Dynamic Loading. The handling of these topics takes a little over a page, but the book gives a useful overview with code examples that clearly illustrate the points made. It is one of the clearest and most concise treatments of these three topics available.
The chapters in Part II include an introduction, diagrams, and sections for each class in the package. The sections for each class can be very informative, as in the discussion of the Socket class in the java.net chapter, which includes how to instantiate a Socket object, getting I/O streams from the object you instantiated, and how to alter the behavior of sockets. This discussion, like most in this book, is brief, clear, and to the point.
If you are looking for a Java reference, this is a solid volume that will provide lasting value. --John Keogh
Topics covered: Part I, "Introducing Java," provides broad coverage of Java programming topics, including data types, syntax, classes, and objects; Java file structure; inner classes; interfaces; packages; creating and initializing objects; destroying and finalizing objects; input/output; cryptography; networking; security; threads; JavaBeans; JavaDoc; and tools that come with Java 1.2 SDK.
Part II, "The Java API Quick Reference," includes chapters on the following Java packages: java.beans, java.beans.beancontext, java.io, java.lang, java.lang.ref, java.lang.reflect, java.math, java.net, java.security, java.security.acl, java.security.cert, java.security.interfaces, java.security.spec, java.text, java.util, java.util.jar, java.util.zip, javax.crypto, javax.crypto.interfaces, javax.crypto.spec, and a final chapter, which provides an index for classes, methods, and fields. [via]
More editions of Java in a Nutshell: A Desktop Quick Reference:
› Find signed collectible books: 'Java in a Nutshell: A Desktop Quick Reference for Java Programmers'
Java in a Nutshell is a complete quick-reference guide to Java, the hot new programming language from Sun Microsystems. This comprehensive volume contains descriptions of all of the classes in the Java 1.0 API, with a definitive listing of all methods and variables. It also contains an accelerated introduction to Java for C and C++ programmers who want to learn the language fast.
Java in a Nutshell introduces the Java programming language and contains many practical examples that show programmers how to write Java applications and applets. It is also an indispensable quick reference designed to wait faithfully by the side of every Java programmer's keyboard. It puts all the information Java programmers need right at their fingertips.
Contents include:
More editions of Java in a Nutshell: A Desktop Quick Reference for Java Programmers:
› Find signed collectible books: 'Joel on Software: And on Diverse and Occasionally Related Matters that Will Prove of Interest to Software Developers, Designers, and Managers, and to Those Who, Whether'
Joel Spolsky began his legendary web log, www.joelonsoftware.com, in March 2000, in order to offer insights for improving the world of programming. Spolsky based these observations on years of personal experience.
The result just a handful of years later? Spolsky's technical knowledge, caustic wit, and extraordinary writing skills have earned him status as a programming guru! His blog has become renowned throughout the programming worldnow linked to more than 600 websites and translated into over 30 languages.
Joel on Software covers every conceivable aspect of software programmingfrom the best way to write code, to the best way to design an office in which to write code! All programmers, all people who want to enhance their knowledge of programmers, and all who are trying to manage programmers will surely relate to Joel's musings.
More editions of Joel on Software: And on Diverse and Occasionally Related Matters that Will Prove of Interest to Software Developers, Designers, and Managers, and to Those Who, Whether:
› Find signed collectible books: 'Learning Perl'
In this update of a bestseller, two leading Perl trainers teach you to use the most universal scripting language in the age of the World Wide Web. With a foreword by Larry Wall, the creator of Perl, this smooth, carefully paced book is the "official" guide for both formal (classroom) and informal learning. It is now current for Perl version 5.004. Learning Perl is a hands-on tutorial designed to get you writing useful Perl scripts as quickly as possible. Exercises (with complete solutions) accompany each chapter. A lengthy new chapter in this edition introduces you to CGI programming, while touching also on the use of library modules, references, and Perl's object-oriented constructs. Perl is a language for easily manipulating text, files, and processes. It comes standard on most UNIX platforms and is available free of charge on all other important operating systems. Perl technical support is informally available -- often within minutes -- from a pool of experts who monitor a USENET newsgroup (comp.lang.perl.misc) with tens of thousands of readers. Contents include: A quick tutorial stroll through Perl basics Systematic, topic-by-topic coverage of Perl's broad capabilities Lots of brief code examples Programming exercises for each topic, with fully worked-out answers How to execute system commands from your Perl program How to manage DBM databases using Perl An introduction to CGI programming for the Web [via]
› Find signed collectible books: 'Learning Perl : Making Easy Things Easy and Hard Things Possible'
If you ask Perl programmers today what book they relied on most when they were learning Perl, you'll find that an overwhelming majority will name Learning Perl--also known affectionately as "the Llama." The first edition of Learning Perl appeared in 1993 and has been a bestseller ever since. Written by two of the most prominent and active members of the Perl community, this book is the quintessential tutorial for the Perl programming language.
Perl began as a tool for Unix system administrators, used for countless small tasks throughout the workday. It has since blossomed into a full-featured programming language on practically every computing platform, and is used for web programming, database manipulation, XML processing, and (of course) system administration--all this while still remaining the perfect tool for the small daily tasks it was designed for. Perl is quick, fun, and eminently useful. Many people start using Perl because they need it, but they continue to use Perl because they love it.
The third edition of Learning Perl has not only been updated for Perl 5.6, but has also been rewritten from the ground up to reflect the needs of programmers learning Perl today. Informed by their years of success at teaching Perl as consultants, the authors have re-engineered the book to better match the pace and scope appropriate for readers trying to get started with Perl, while retaining the detailed discussion, thorough examples, and eclectic wit for which the book is famous.
This edition of the Llama includes an expanded and more gently-paced introduction to regular expressions, new exercises and solutions designed so readers can practice what they've learned while it's still fresh in their minds, and an overall reworking to bring Learning Perl into the new millennium.
Perl is a language for getting your job done. Other books may teach you to program in Perl, but this book will turn you into a Perl programmer.
More editions of Learning Perl : Making Easy Things Easy and Hard Things Possible:
› Find signed collectible books: 'Managing Projects With Make'
make is one of UNIX's greatest contributions to software development, and this book is the clearest description of make ever written. Even the smallest software project typically involves a number of files that depend upon each other in various ways. If you modify one or more source files, you must relink the program after recompiling some, but not necessarily all, of the sources.
make greatly simplifies this process. By recording the relationships between sets of files, make can automatically perform all the necessary updating.
For large projects with teams of programmers and multiple releases, make becomes even more critical. But in order to avoid spending a major portion of your maintenance budget on maintaining the Makefiles, you need a system for handling directories, dependencies, and macro definitions. This book describes all the basic features of make and provides guidelines on meeting the needs of large, modern projects.
Some of the issues addressed in the second edition include:
More editions of Managing Projects With Make:
› Find signed collectible books: 'Mastering Regular Expressions'
Regular expressions are a central element of UNIX utilities like egrep and programming languages such as Perl. But whether you're a UNIX user or not, you can benefit from a better understanding of regular expressions since they work with applications ranging from validating data-entry fields to manipulating information in multimegabyte text files. Mastering Regular Expressions quickly covers the basics of regular-expression syntax, then delves into the mechanics of expression-processing, common pitfalls, performance issues, and implementation-specific differences. Written in an engaging style and sprinkled with solutions to complex real-world problems, Mastering Regular Expressions offers a wealth information that you can put to immediate use. [via]
More editions of Mastering Regular Expressions:
› Find signed collectible books: 'Mastering Regular Expressions: Powerful Techniques for Perl and Other Tools'
Regular expressions are a central element of UNIX utilities like egrep and programming languages such as Perl. But whether you're a UNIX user or not, you can benefit from a better understanding of regular expressions since they work with applications ranging from validating data-entry fields to manipulating information in multimegabyte text files. Mastering Regular Expressions quickly covers the basics of regular-expression syntax, then delves into the mechanics of expression-processing, common pitfalls, performance issues, and implementation-specific differences. Written in an engaging style and sprinkled with solutions to complex real-world problems, Mastering Regular Expressions offers a wealth information that you can put to immediate use. [via]
More editions of Mastering Regular Expressions: Powerful Techniques for Perl and Other Tools:
› Find signed collectible books: 'The Mythical Man-Month: Essays on Software Engineering'
Classic book on the human elements of software engineering. [via]
More editions of The Mythical Man-Month: Essays on Software Engineering:
› Find signed collectible books: 'Pattern Hatching: Design Patterns Applied'
Author John Vlissides is a member of the so-called Gang of Four: writers of the bestselling and influential Design Patterns: Elements of Reusable Object-Oriented Software, a catalog of 23 design patterns. This more recent book delivers considerable insight on using and applying software design patterns--reusable designs for common programming problems--and compiles the author's further experience with patterns.
Pattern Hatching first defends the patterns movement by offering 10 myths about patterns, which provide a framework for thinking about the role of patterns in today's software. (While not a silver bullet, the author argues for the continued importance of patterns throughout software engineering.) The next section shows how to apply several patterns (drawn from the original 23) in a file system; the author uses and describes common patterns such as the Composite, Visitor, Proxy, and Singleton. To help illustrate how to use patterns and how they work together, the author also provides C++ source code for the designs in the book.
Part of the fun of reading Pattern Hatching is getting the author's insight on the origin of thinking about patterns, including several patterns that were actually left out of the original book, such as the Generation Gap pattern and the Multicast pattern.
For readers who are familiar with Design Patterns, Pattern Hatching is a lively behind-the-scenes look at one of the most important recent developments in software design. --Richard Dragan [via]
More editions of Pattern Hatching: Design Patterns Applied:
› Find signed collectible books: 'Patterns of Enterprise Application Architecture'
The practice of enterprise application development has benefited from the emergence of many new enabling technologies. Multi-tiered object-oriented platforms, such as Java and .NET, have become commonplace. These new tools and technologies are capable of building powerful applications, but they are not easily implemented. Common failures in enterprise applications often occur because their developers do not understand the architectural lessons that experienced object developers have learned. Patterns of Enterprise Application Architecture is written in direct response to the stiff challenges that face enterprise application developers. The author, noted object-oriented designer Martin Fowler, noticed that despite changes in technology--from Smalltalk to CORBA to Java to .NET--the same basic design ideas can be adapted and applied to solve common problems. With the help of an expert group of contributors, Martin distills over forty recurring solutions into patterns. The result is an indispensable handbook of solutions that are applicable to any enterprise application platform. This book is actually two books in one. The first section is a short tutorial on developing enterprise applications, which you can read from start to finish to understand the scope of the book's lessons. The next section, the bulk of the book, is a detailed reference to the patterns themselves. Each pattern provides usage and implementation information, as well as detailed code examples in Java or C#. The entire book is also richly illustrated with UML diagrams to further explain the concepts. Armed with this book, you will have the knowledge necessary to make important architectural decisions about building an enterprise application and the proven patterns for use when building them. [via]
More editions of Patterns of Enterprise Application Architecture:
› Find signed collectible books: 'Peopleware: Productive Projects and Teams'
Peopleware asserts that most software development projects fail because of failures within the team running them. This strikingly clear, direct book is written for software development team leaders and managers, but it's filled with enough common-sense wisdom to appeal to anyone working in technology. Authors Tom DeMarco and Timothy Lister include plenty of illustrative, often amusing anecdotes; their writing is light, conversational, and filled with equal portions of humour and wisdom, and there is a refreshing absence of "new age" terms and multi-step programmes. The advice is presented straightforwardly and ranges from simple issues of prioritisation to complex ways of engendering harmony and productivity in your team. Peopleware is a short read that delivers more than many books on the subject twice its size. --Jake Bond [via]
More editions of Peopleware: Productive Projects and Teams:
› Find signed collectible books: 'Perl Cookbook'
When the second edition of Programming Perl was released, the authors omitted two chapters: "Common Tasks with Perl" and "Real Perl Programs." Publisher O'Reilly & Associates soon realized that there would be too many pages in Programming Perl if it put updated recipes in the new edition. Instead, O'Reilly chose to release the many Perl code examples as a separate entity: The Perl Cookbook.
The recipes are well documented and the examples aren't too arcane; even beginners will be able to pick up the lessons taught here. The authors write in relatively easy-to-understand language (for a technical guide). Through this book and its arsenal of recipes, you will learn many new things about Perl to help you through your toughest projects. The next time you're working on a project at 2 a.m., you'll thank yourself for the guidance and direction The Perl Cookbook provides. --Doug Beaver [via]
More editions of Perl Cookbook:
› Find signed collectible books: 'Planning Extreme Programming'
Programming continues to refuse to be engineering. This is why there are so many cancelled projects, cost and time overruns and customer dissatisfaction. Planning Extreme Programming offers a way to run small-to-medium size programming projects in such a way as to produce the required product on time and to budget.
To achieve this the authors focus away from complex, report-led planning to a people-oriented process which treats programming like a craft project. Extreme Programming starts by recognising reality: start right and you'll finish right. In fact the authors specifically argue against overtime, increasing manpower on late projects and other such attempts to increase productivity as evidence of failure. They start by breaking projects into stories (or features), insist on customer involvement, iterate relentlessly over a timescale of weeks, set short-term targets based on the evidence of previous iterations and--in a break with traditional practices--absolutely insist on customer involvement at every stage, including signing off each story.
The claimed results of applying the XP approach is a better product with fewer bugs as well as the ability to meet agreed deadlines and budgets. Pretty impressive claims for a book that reads like a set of obvious, common-sense rules. Astonishingly, the only planning tool required is a box of index cards and the right attitude. You are even recommended to avoid spreadsheets. Perhaps, then, the real success of Extreme Programming rests on its implicit acknowledgement that programming is a craft, and not engineering. What can you say? It works. Read it and then implement it. -- Steve Patient [via]
More editions of Planning Extreme Programming:

› Find signed collectible books: 'Practical Development Environments'
More editions of Practical Development Environments:
› Find signed collectible books: 'The Pragmatic Programmer: From Journeyman to Master'
Programmers are craftspeople trained to use a certain set of tools (editors, object managers, version trackers) to generate a certain kind of product (programs) that will operate in some environment (operating systems on hardware assemblies). Like any other craft, computer programming has spawned a body of wisdom, most of which isn't taught at universities or in certification classes. Most programmers arrive at the so-called tricks of the trade over time, through independent experimentation. In The Pragmatic Programmer, Andrew Hunt and David Thomas codify many of the truths they've discovered during their respective careers as designers of software and writers of code.
Some of the authors' nuggets of pragmatism are concrete, and the path to their implementation is clear. They advise readers to learn one text editor, for example, and use it for everything. They also recommend the use of version-tracking software for even the smallest projects, and promote the merits of learning regular expression syntax and a text-manipulation language. Other (perhaps more valuable) advice is more light-hearted. In the debugging section, it is noted that, "if you see hoof prints think horses, not zebras." That is, suspect everything, but start looking for problems in the most obvious places. There are recommendations for making estimates of time and expense, and for integrating testing into the development process. You'll want a copy of The Pragmatic Programmer for two reasons: it displays your own accumulated wisdom more cleanly than you ever bothered to state it, and it introduces you to methods of work that you may not yet have considered. Working programmers will enjoy this book. --David Wall
Topics covered: A useful approach to software design and construction that allows for efficient, profitable development of high-quality products. Elements of the approach include specification development, customer relations, team management, design practices, development tools, and testing procedures. This approach is presented with the help of anecdotes and technical problems. [via]
More editions of The Pragmatic Programmer: From Journeyman to Master:
› Find signed collectible books: 'Programming Pearls'
This book is a collection and expansion of the column, "Programming Pearls," published in Communication of the Association for Computing Machinery. The essays present programs that go beyond solid engineering techniques to be creative and clever solutions to computer problems. The programs are fun and they teach important programming techniques and fundamental design principles. Written in a engaging style, this book will appeal to people with some programming experience who want to learn more about refining their techniques. ACM Press. 0201103311B04062001 [via]
› Find signed collectible books: 'Programming Perl'
This is the authoritative guide to the hottest new UNIX utility in years, coauthored by its creator, Larry Wall. Perl is a language for easily manipulating text, files, and processes. Perl provides a more concise and readable way to do many jobs that were formerly accomplished (with difficulty) by programming in the C language or one of the shells. Even though Perl is not yet a standard part of UNIX, it is likely to be available wherever you choose to work. And if it isn't, you can get it and install it easily and free of charge. Contents include: An introduction to Perl Common tasks with Perl Real Perl programs; includes database manipulation, programming aids, system administration, text and filename manipulation, interprocess communication, and more Perl syntax Perl functions Other oddments; invocation options, debugging, efficiency, the Perl library, linking in C subroutines, etc. Also includes a pull-out quick-reference card (designed and created by Johan Vromans). [via]
› Find signed collectible books: 'Programming Perl'
The second edition of the Camel Book is more than 600 pages long and full of excellent instruction and sound advice. Topics include all the good stuff from the first edition plus Perl 5 features such as nested data structures (ever made a hash of arrays of hashes?), modules, and objects. From "Howdy World"
More editions of Programming Perl:

› Find signed collectible books: 'The Psychology of Computer Programming'
More editions of The Psychology of Computer Programming:
› Find signed collectible books: 'The Psychology of Computer Programming: Silver Anniversary Edition'
This landmark 1971 classic is reprinted with a new preface, chapter-by-chapter commentary, and straight-from-the-heart observations on topics that affect the professional life of programmers.
Long regarded as one of the first books to pioneer a people-oriented approach to computing, The Psychology of Computer Programming endures as a penetrating analysis of the intelligence, skill, teamwork, and problem-solving power of the computer programmer.
Finding the chapters strikingly relevant to today's issues in programming, Gerald M. Weinberg adds new insights and highlights the similarities and differences between now and then. Using a conversational style that invites the reader to join him, Weinberg reunites with some of his most insightful writings on the human side of software engineering.
Topics include egoless programming, intelligence, psychological measurement, personality factors, motivation, training, social problems on large projects, problem-solving ability, programming language design, team formation, the programming environment, and much more.
Dorset House Publishing is proud to make this important text available to new generations of Weinberg fans and to encourage readers of the first edition to return to its valuable lessons. [via]
More editions of The Psychology of Computer Programming: Silver Anniversary Edition:
› Find signed collectible books: 'Rapid Development'
I can hear some of you exclaiming, "How can you possibly recommend a book about software scheduling published by Microsoft Press and written by a consultant to Microsoft?!" Well, put aside any preconceived biases. This is a tremendous book on effective scheduling software development, and it drinks deeply from the wisdom of all the classics in the field such as Brook's Mythical Man Month -- and is likely well-informed by McConnell's experiences, good and bad, in Redmond.
The nine page section entitled "Classic Mistakes Enumerated" is alone worth the price of admission and should be required reading for all developers, leads, and managers. Here are some types of the 36 classic mistakes that McConnell describes in detail:
I suspect that if you've ever been involved in software development, you winced after reading each of these nine points. And you will learn a great deal from the remaining 640 pages about concrete solutions.
My only substantive gripe: cheesy Powerpoint graphics. Nonetheless, this book is Very Highly Recommended. [via]
More editions of Rapid Development:
› Find signed collectible books: 'Rapid Development: Taming Wild Software Schedules'
I can hear some of you exclaiming, "How can you possibly recommend a book about software scheduling published by Microsoft Press and written by a consultant to Microsoft?!" Well, put aside any preconceived biases. This is a tremendous book on effective scheduling software development, and it drinks deeply from the wisdom of all the classics in the field such as Brook's Mythical Man Month -- and is likely well-informed by McConnell's experiences, good and bad, in Redmond.
The nine page section entitled "Classic Mistakes Enumerated" is alone worth the price of admission and should be required reading for all developers, leads, and managers. Here are some types of the 36 classic mistakes that McConnell describes in detail:
I suspect that if you've ever been involved in software development, you winced after reading each of these nine points. And you will learn a great deal from the remaining 640 pages about concrete solutions.
My only substantive gripe: cheesy Powerpoint graphics. Nonetheless, this book is Very Highly Recommended. [via]
More editions of Rapid Development: Taming Wild Software Schedules:

› Find signed collectible books: 'Rational Unified Process'
More editions of Rational Unified Process:
› Find signed collectible books: 'The Rational Unified Process: An Introduction'
The Rational Unified Process (RUP) is a saleable product from Rational/IBM.The RUP unifes the entire software development team and seeks to optimizethe productivity of each and every team member by putting the collectiveexperience derived from thousands of development projects and many industryleaders at the user's fingertips. It is a very popular product, and this bookrepresents the most thorough documentation for the latest version of theproduct (RUP v2003), which was released in May of 2003. [via]
More editions of The Rational Unified Process: An Introduction:
› Find signed collectible books: 'The Rational Unified Process an Introduction: An Introduction'
This book is the fastest way to get up- and-running with Rational Unified Process 2000 -- the industry's most powerful tool for incorporating best practices into software development. Authored by RUP's Lead Architect, it reflects all the major improvements made in the newest version of RUP, including its improved support for business engineering, management of non-functional requirements, and deployment of multi-tier distributed applications. Discover how RUP 2000 can enable development teams to maximize software quality -- within predictable schedules and reasonable budgets. Understand what RUP 2000 is, how it evolved, and how it fits into the development process. Next, review the structure of RUP 2000, mastering its use throughout the entire project lifecycle. This edition includes substantial new coverage of application interface design (including Web applications); patterns and frameworks; real-time and reactive systems; lifecycle testing, and more. There are new process roadmaps that demonstrate RUP 2000 at work with many projects and technologies; as well as expanded checklists and guidelines for process artifacts, activities, and phases. [via]
More editions of The Rational Unified Process an Introduction: An Introduction:
› Find signed collectible books: 'Refactoring: Improving the Design of Existing Code'
Your class library works, but could it be better? Refactoring: Improving the Design of Existing Code shows how refactoring can make object-oriented code simpler and easier to maintain. Today, refactoring requires considerable design know-how, but once tools become available, all programmers should be able to improve their code using refactoring techniques.
Besides an introduction to what refactoring is, this handbook provides a catalogue of dozens of tips for improving code. The best thing about Refactoring is its remarkably clear presentation, along with excellent nuts-and-bolts advice, from object expert Martin Fowler. The author is also an authority on software patterns and UML, and this experience helps make this a better book, one that should be immediately accessible to any intermediate or advanced object-oriented developer. (Just like patterns, each refactoring tip is presented with a simple name, a "motivation," and examples using Java and UML.)
Early chapters stress the importance of testing in successful refactoring. (When you improve code, you have to test to verify that it still works.) After the discussion on how to detect the "smells" of bad code, readers get to the heart of the book, its catalogue of more than 70 "refactorings"--tips for better and simpler class design. Each tip is illustrated with "before" and "after" code, along with an explanation. Later chapters provide a quick look at refactoring research.
Like software patterns, refactoring may be an idea whose time has come. This groundbreaking title will surely help bring refactoring to the programming mainstream. With its clear advice on a hot new topic, Refactoring is sure to be essential reading for anyone who writes or maintains object- oriented software. --Richard Dragan
Topics Covered: Refactoring, improving software code, redesign, design tips, patterns, unit testing, refactoring research and tools. [via]
More editions of Refactoring: Improving the Design of Existing Code:
› Find signed collectible books: 'Software Estimation: Demystifying the Black Art'
Often referred to as the black art because of its complexity and uncertainty, software estimation is not as difficult or puzzling as people think. In fact, generating accurate estimates is straightforwardonce you understand the art of creating them. In his highly anticipated book, acclaimed author Steve McConnell unravels the mystery to successful software estimationdistilling academic information and real-world experience into a practical guide for working software professionals. Instead of arcane treatises and rigid modeling techniques, this guide highlights a proven set of procedures, understandable formulas, and heuristics that individuals and development teams can apply to their projects to help achieve estimation proficiency.
Discover how to:
When many corporate software projects are failing, McConnell shows you what works for successful software estimation.
More editions of Software Estimation: Demystifying the Black Art:
› Find signed collectible books: 'Software Project Survival Guide'
More editions of Software Project Survival Guide:
› Find signed collectible books: 'Software Project Survival Guide: How to Be Sure Your First Important Project Isn't Your Last'
Equip yourself with SOFTWARE PROJECT SURVIVAL GUIDE. It's for everyone with a stake in the outcome of a development project--and especially for those without formal software project management training. That includes top managers, executives, clients, investors, end-user representatives, project managers, and technical leads.
Here you'll find guidance from the acclaimed author of the classics CODE COMPLETE and RAPID DEVELOPMENT. Steve McConnell draws on solid research and a career's worth of hard-won experience to map the surest path to your goal--what he calls "one specific approach to software development that works pretty well most of the time for most projects." Nineteen chapters in four sections cover the concepts and strategies you need for mastering the development process, including planning, design, management, quality assurance, testing, and archiving. For newcomers and seasoned project managers alike, SOFTWARE PROJECT SURVIVAL GUIDE draws on a vast store of techniques to create an elegantly simplified and reliable framework for project management success.
So don't worry about wandering among complex sets of project management techniques that require years to sort out and master. SOFTWARE PROJECT SURVIVAL GUIDE goes straight to the heart of the matter to help your projects succeed. And that makes it a required addition to every professional's bookshelf.
More editions of Software Project Survival Guide: How to Be Sure Your First Important Project Isn't Your Last:
› Find signed collectible books: 'Software Requirements'
"Requirements" are essential for creating successful software because they let users and developers agree on what features will be delivered in new systems. Karl Wiegers's Software Requirements shows you how to define and get more out of software requirements with dozens of "best practices" and tips that make this book a valuable resource for both software project managers and developers.
The book's commonsense approach provides exemplary project management skills tailored to gathering (and refining, implementing, and eventually tracking) software requirements. While the book often cites recent software engineering studies, the focus always returns to practical management techniques. A case study for a chemical tracking application frames the book, and most chapters begin with anecdotes that demonstrate situations in which users and developers misunderstand each other about a software project's ultimate goals. (If you've ever worked in the field, these stories will probably sound all too familiar.)
This book offers hope, though, for improving your software design process, with dozens of tips on getting better design input from your customers and then using these requirements to generate a variety of design documents. There are numerous templates and sample documents too--a big help for the busy software manager.
Several standout sections cover negotiating difficult steps in the process, particularly how to manage shifting requirements as projects move forward and keep the various users and stakeholders content throughout the software process. Late in the book, the author surveys today's software management tools and shows how to pick the right ones for your organization.
Anchored by the author's considerable experience and software engineering expertise, this jargon-free and practical guide to software requirements can definitely give you the edge in managing software projects more efficiently. --Richard Dragan
Topics covered: software requirements specifications (SRS); business and user requirements; risk management; the requirements process; sample documents and templates; requirements development: elicitation, analysis, specification, and verification; rights and responsibilities for software customers; best practices; project management tips; process assessment and improvement; types of users; product champions; use cases and other diagrams; tips for prototyping; managing requirements change; change centered boards (CCBs); evaluating and using requirements tools; requirements traceability matrix; impact analysis. [via]
More editions of Software Requirements:
› Find signed collectible books: 'Test-Driven Development: By Example'
Quite simply, test-driven development is meant to eliminate fear in application development. While some fear is healthy (often viewed as a conscience that tells programmers to "be careful!"), the author believes that byproducts of fear include tentative, grumpy, and uncommunicative programmers who are unable to absorb constructive criticism. When programming teams buy into TDD, they immediately see positive results. They eliminate the fear involved in their jobs, and are better equipped to tackle the difficult challenges that face them. TDD eliminates tentative traits, it teaches programmers to communicate, and it encourages team members to seek out criticism However, even the author admits that grumpiness must be worked out individually! In short, the premise behind TDD is that code should be continually tested and refactored. Kent Beck teaches programmers by example, so they can painlessly and dramatically increase the quality of their work. [via]
More editions of Test-Driven Development: By Example:
› Find signed collectible books: 'Uml Distilled: A Brief Guide to the Standard Object Modeling Language'
The second edition of Martin Fowler's bestselling UML Distilled provides updates to the Unified Modeling Language (UML) without changing its basic formula for success. It is still arguably the best resource for quick, no-nonsense explanations of using UML.
The major strength of UML Distilled is its short, concise presentation of the essentials of UML and where it fits within today's software development process. The book describes all the major UML diagram types, what they're for, and the basic notation involved in creating and deciphering them. These diagrams include use cases; class and interaction diagrams; collaborations; and state, activity, and physical diagrams. The examples are always clear, and the explanations cut to the fundamental design logic.
For the second edition, the material has been reworked for use cases and activity diagrams, plus there are numerous small tweaks throughout, including the latest UML v. 1.3 standard. An appendix even traces the evolution of UML versions.
Working developers often don't have time to keep up with new innovations in software engineering. This new edition lets you get acquainted with some of the best thinking about efficient object-oriented software design using UML in a convenient format that will be essential to anyone who designs software professionally. --Richard Dragan
Topics covered: UML basics, analysis and design, outline development (software development process), inception, elaboration, managing risks, construction, transition, use case diagrams, class diagrams, interaction diagrams, collaborations, state diagrams, activity diagrams, physical diagrams, patterns, and refactoring basics. [via]
More editions of Uml Distilled: A Brief Guide to the Standard Object Modeling Language:

› Find signed collectible books: 'Uml Distilled: Applying the Standard Object Modeling Language'
More editions of Uml Distilled: Applying the Standard Object Modeling Language:
› Find signed collectible books: 'The Unified Modeling Language User Guide'
One of the most important recent developments in software engineering is the Unified Modeling Language (UML) standard for documenting software designs. Written by UML's inventors (the so-called Three Amigos of software engineering), The Unified Modeling Language User Guide provides a very appealing guide to all the fundamentals of using UML effectively. The book opens with a basic tour of the essential concepts and modeling diagrams used in UML, including class diagrams, use case diagrams, and basic modeling principles. The authors pay close attention to modeling classes (and documenting the relationships between classes) as well as use case diagrams (which show how software will be used by various actors in a system). This book mixes in a little software-engineering theory, too, but it makes use of clear examples and actual UML diagrams to illustrate key concepts.
Later in the book, the authors discuss more difficult notational diagrams (such as state diagrams and activity diagrams, which can be used to model behavior in a system). Whatever your background in software engineering, you'll no doubt appreciate the author's clear explanations of basic (and advanced) modeling concepts, as well as the nuts-and-bolts details of today's powerful UML. With its combination of expert modeling advice and excellent detail on the specifics of UML, this book will be absolutely essential reading for anyone who wants to use UML for real-world software design. --Richard Dragan [via]
More editions of The Unified Modeling Language User Guide:
› Find signed collectible books: 'The Unified Software Development Process'
A software process defines the steps required to create software successfully. Written by the same authors who brought you the Unified Modeling Language (UML), The Unified Software Development Process introduces a new standard for creating today's software that will certainly be useful for any software developer or manager who is acquainted with UML.
Early sections introduce four basic principles of the unified process: that software should stress use cases (which show how it interacts with users), that the process is architecture-centric, and that it is iterative and incremental. The authors then apply these principles to their software process, which involves everything from gathering system requirements to analysis, design, implementation, and testing. The use-case examples are excellent and include concrete examples drawn from such areas as banking and inventory control.
The authors point out the connection between UML document types (like use cases, class diagrams, and state transition diagrams) with various models used throughout the software process. They provide very short, real-world examples that illustrate how their ideas have been successfully applied. The straightforward tour of the new unified software process gets extra elaboration--along with some advice--in later chapters that further describe the author's ideas on design. With the weight of these three expert authors behind it, readers can expect The Unified Software Development Process to be an important book and one that will be valuable to any working designer or manager. --Richard Dragan [via]
More editions of The Unified Software Development Process:
› Find signed collectible books: 'Writing Effective Use Cases'
Alistair Cockburn's Writing Effective Use Cases is an approachable, informative, and very intelligent treatment of an essential topic of software design. "Use cases" describe how "actors" interact with computer systems and are essential to software-modelling requirements. For anyone who designs software, this title offers some real insight into writing use cases that are clear and correct and lead to better and less costly software.
The focus of this text is on use cases that are written as opposed to modelled in UML. This book may change your mind about the advantages of writing step-by-step descriptions of the way users (or actors) interact with systems. Besides being an exceptionally clear writer, the author has plenty to say about what works and what doesn't when it comes to creating use cases. There are several standout bits of expertise on display here, including excellent techniques for finding the right "scope" for use cases. (The book uses a colour scheme in which blue indicates a sea-level use case that's just right while higher-level use cases are white and over-detailed ones are indigo. It also provides notational symbols to document these levels of detail within a design.)
This book contains numerous tips on the writing style for use cases and plenty of practical advice for managing projects that require a large number of use cases. One particular strength lies in the numerous actual use cases (many with impressive detail) borrowed from real-world projects that demonstrate both good and bad practices. Even though the author expresses a preferences for the format of use cases, he presents a variety of styles, including UML graphical versions. The explanation of how use cases fit into the rest of the software engineering process is especially good. The book concludes with several dozen concrete tips for writing better use cases.
Software engineering books often get bogged down in theory. Not so in Writing Effective Use Cases, a slender volume with a practical focus, a concise presentation style, and something truly valuable to say. This book will benefit most anyone who designs software for a living. --Richard Dragan [via]
More editions of Writing Effective Use Cases:
› Find signed collectible books: 'Writing Secure Code'
Keep black-hat hackers at bay with the tips and techniques in this entertaining, eye-opening book! Developers will learn how to padlock their applications throughout the entire development processfrom designing secure applications to writing robust code that can withstand repeated attacks to testing applications for security flaws. Easily digested chapters reveal proven principles, strategies, and coding techniques. The authorstwo battle-scarred veterans who have solved some of the industrys toughest security problemsprovide sample code in several languages. This edition includes updated information about threat modeling, designing a security process, international issues, file-system issues, adding privacy to applications, and performing security code reviews. It also includes enhanced coverage of buffer overruns, Microsoft® .NET security, and Microsoft ActiveX® development, plus practical checklists for developers, testers, and program managers.
More editions of Writing Secure Code:
› Find signed collectible books: 'Writing Solid Code: Microsoft's Techniques for Developing Bug-Free C Programs'
Any programmer worth their silicon knows that it is wiser to invest time preventing bugs from hatching than to try to exterminate them afterwards. And this is one of the best books for developing a proactive attitude towards electronic entomology. Follow Maguire's advice, and your testers, supervisors and customers will love you. Recommended. [via]
More editions of Writing Solid Code: Microsoft's Techniques for Developing Bug-Free C Programs:
