How we did it:
For any feedback, any questions, any notes or just for chat - feel free to follow us on social networks
Michael C. Feathers
The average book on Agile software development describes a fairyland of greenfield projects, with wall-to-wall tests that run after every few edits, and clean & simple source code.
The average software project, in our industry, was written under some aspect of code-and-fix, and without automated unit tests. And we can't just throw this code away; it represents a significant effort debugging and maintaining. It contains many latent requirements decisions. Just as Agile processes are incremental, Agile adoption must be incremental too. No more throwing away code just because it looked at us funny.
Mike begins his book with a very diplomatic definition of "Legacy". I'l skip ahead to the undiplomatic version: Legacy code is code without unit tests.
Before cleaning that code up, and before adding new features and removing bugs, such code must be de-legacified. It needs unit tests.
To add unit tests, you must change the code. To change the code, you need unit tests to show how safe your change was.
The core of the book is a cookbook of recipes to conduct various careful attacks. Each presents a particular problem, and a relatively safe way to migrate the code towards tests.
Code undergoing this migration will begin to experience the benefits of unit tests, and these benefits will incrementally make new tests easier to write. These efforts will make aspects of a legacy codebase easy to change.
It's an unfortunate commentary on the state of our programming industry how much we need this book.
Features the best practices in the art and science of constructing software--topics include design, applying good techniques to construction, eliminating errors, planning, managing construction activities, and relating personal character to superior software. Original. (Intermediate)
Donald A. Norman
Reveals a current trend in smart design that can enable companies to move to or remain on the leading edge of the competitive frontier, offering a primer on how and why various products succeed or fail to satisfy consumers. Originally published as The Psychology of Everyday Things. Reprint. 25,000 first printing.
Alan Cooper, Robert Reimann, Dave Cronin
While the ideas and principles in the original book remain as relevant as ever, the examples in "About Face 3" are updated to reflect the evolution of the Web. Interaction Design professionals are constantly seeking to ensure that software and software-enabled products are developed with the end-user's goals in mind, that is, to make them more powerful and enjoyable for people who use them. "About Face 3" ensures that these objectives are met with the utmost ease and efficiency. Alan Cooper (Palo Alto, CA) has spent a decade making high-tech products easier to use and less expensive to build - a practice known as "Interaction Design." Cooper is now the leader in this growing field.
A noted journalist chronicles three years in the lives of a team of maverick software developers, led by Lotus 1-2-3 creator Mitch Kapor, intent on creating a revolutionary personal information manager to challenge Microsoft Outlook. Reprint. 30,000 first printing.
Billions of dollars are wasted each year on IT software projects that are developed and either released late or never used. In light of recent large-scale errors, the methods, tools, and practices used for software development have become the subject of significant study and analysis. One qualitative method for analysis is software assessment, which explores the methodologies used by businesses for software development. Another method of analysis is software benchmarking, which collects quantitative data on such topics as schedules and costs. Renowned author Capers Jones draws on his extensive experience in economic analysis to present "Software Assessments, Benchmarks, and Best Practices," a useful combination of qualitative and quantitative approaches to software development analysis. When assessment data and benchmarking data are analyzed jointly, it is possible to show how specific tools and practices impact the effectiveness of an organization's development efforts. The result is a clearer, bigger picture--a roadmap that allows an organization to identify areas for improvement in its development efforts. With this book as your guide, you will learn: To combine assessments and benchmarking for optimal software analysis To identify best and worst practices for software development To improve software quality and application effectiveness To reduce costs of software maintenance by avoiding software errors 0201485427B04062001
An updated edition of the best tips and tools to plan, build, and execute a structured test operation In this update of his bestselling book, Rex Black walks you through how to develop essential tools and apply them to your test project. He helps you master the basic tools, apply the techniques to manage your resources, and give each area just the right amount of attention so that you can successfully survive managing a test project! Offering a thorough review of the tools and resources you will need to manage both large and small projects for hardware and software, this book prepares you to adapt the concepts across a broad range of settings. Simple and effective, the tools comply with industry standards and bring you up to date with the best test management practices and tools of leading hardware and software vendors. Rex Black draws from his own numerous testing experiences-- including the bad ones, so you can learn from his mistakes-- to provide you with insightful tips in test project management. He explores such topics as: Dates, budgets, and quality-expectations versus reality Fitting the testing process into the overall development or maintenance process How to choose and when to use test engineers and technicians, contractors and consultants, and external test labs and vendors Setting up and using an effective and simple bug-tracking database Following the status of each test case The companion Web site contains fifty tools, templates, and case studies that will help you put these ideas into action--fast!