Home
Training
Publications
Products
Goodies
Biography
 

Publications

Logo
 

Books

Software Development Pearls
The Thoughtless Design of Everyday Things
Software Requirements
More About Software Requirements
Successful Business Analysis Consulting
Practical Project Initiation
Peer Reviews in Software
Creating a Software Engineering Culture
The Reconstruction
Pearls from Sand

Articles

Requirements
Project Management
Process Improvement
Peer Reviews
Flagrantly Opinionated Essays

As an Amazon Associate I earn from qualifying purchases.
The Thoughtless Design of Everyday Things Software Development Pearls: Lessons from Fifty Years of Software Experience presents 60 lessons I've learned throughout my career, both from my personal experience and from some 150 companies I've worked with as a consultant and trainer. The lessons address six areas that are key to software development success: requirements, design, project management, culture and teamwork, quality, and process improvement. Studying these experience-based insights can save you the time and pain of climbing every learning curve yourself.

Details, table of contents, and sample chapters      Purchase


The Thoughtless Design of Everyday Things Have you ever noticed how many products appear to be designed by someone who has never used a product of that kind before? The Thoughtless Design of Everyday Things presents more than 160 examples of thoughtlessly-designed products, along with nearly 50 examples of particularly good designs. These poor designs reveal 70 insightful design lessons, which are aligned with 9 fundamental principles of good design. This book will be insightful and thought-provoking for both new and experienced designers, as well as interested and curious consumers.

Details, table of contents, and sample chapters      Purchase


Software Requirements Software Requirements, 3rd Edition (co-authored with Joy Beatty) won an Award of Excellence from the Society for Technical Communication. Covering the full scope of requirements development and management, this comprehensive good practice guide can help anyone in the business analysis role elicit, analyze, document, validate, and manage the requirements for any project. Topics include:
  • The role of the business analyst and the skills and knowledge needed
  • Elicitation techniques
  • Writing clear and effective requirements
  • Quality attributes and other nonfunctional requirements
  • Visual analysis modeling techniques
  • Data requirements, including specifying reports and dashboards
  • Requirements prioritization, reuse, and prototyping
  • Requirements for agile projects and how to apply specific practices to agile projects
  • Requirements for specific classes of projects: business process automation, packaged solutions, enhancement and replacement, outsourced, business analytics, and real-time systems
Table of Contents and Sample Chapters      Reviewer Comments      Purchase


More About Software Requirements More About Software Requirements: Thorny Issues and Practical Advice addresses many questions that requirements analysts ask over and over again, most of which are not covered well in the current books on software requirements. Some of these thorny problems don't have perfect solutions, but the book offers practical options and ways to select the best approach in a given situation. Chapters cover points of confusion around use cases, how to optimize customer involvement, different ways to represent requirements knowledge, and some key issues regarding requirements management. There's a wealth of advice on how to write excellent software requirements at an appropriate level of detail and without unnecessary design constraints.

Table of contents and sample chapters      Purchase


Successful Business Analysis Consulting Successful Business Analysis Consulting: Strategies and Tips for Going It Alone presents countless insights I've acquired in more than 20 years as an independent consultant. This is the kind of information I wish I had had before I decided to give consulting a try. If you have questions about setting prices, negotiating agreements, dealing with difficult clients, partnering with other consultants, giving presentations, writing for publication, or generating revenue while you sleep, this book has answers. Even if you aren't an independent consultant, you'll find a lot of valuable information in this book.

Details, table of contents, and sample chapters      Purchase


Practical Project Initiation Practical Project Initiation: A Handbook with Tools addresses the process of conceiving, approving, and launching a new project. This book describes many actions that lay the foundation for a successful project. Both experienced and novice project managers will find the practices described here to be valuable. Topics covered include: defining project success criteria and product release criteria, project chartering, risk management, lessons learned and project retrospectives, metrics, and many others. Each chapter includes several practice activities and worksheets to help you begin applying the techniques immediately. A companion page provides numerous templates, procedure descriptions, spreadsheet tools, and other work aids to help you launch your next project more effectively.

Table of contents and sample chapters      Purchase      Companion Page


Peer Reviews in Software Peer Reviews in Software: A Practical Guide is a concise description of software peer reviews and inspections. It covers the inspection process in some detail, but it also describes a variety of other review types that cover a spectrum of formality. Several chapters address the cultural and interpersonal aspects of peer reviews, installing a review program in an organization, and recording and using inspection metrics. The emphasis is on a simple, practical approach to these important quality techniques that any organization can apply.

Table of contents and sample chapters       Purchase


Creating Software Engineering Culture Creating a Software Engineering Culture won a Productivity Award from Software Development magazine. A healthy software engineering culture is one in which managers and practitioners share a commitment to building quality software through the application of effective and sensible software processes. The book describes 14 cultural principles that I think are important in guiding how software is built. If you share my belief that these principles are important, you'll apply technical and managerial practices that I think will lead to superior software.

Table of contents       Purchase       E-books


The Reconstruction In my forensic mystery novel, The Reconstruction, a forensic sculptor is shocked to discover she has a close personal connection to the subject ofher latest forensic facial reconstruction. She is then driven to identify the victim, confirm their relationship, and deliver justice for her death. Totally different from my technical books, The Reconstruction is an engaging mystery that will hold your attention. It was also the most fun I ever had writing something.

Details    Sample chapters    Purchase


Pearls from Sand Pearls from Sand: How Small Encounters Lead to Powerful Lessons is a memoir of life lessons that I learned from otherwise ordinary conversations and experiences. Each of the 37 chapters describes a powerful life lesson, how I learned it, how I've used it, and how you can use it to enhance your own life. The lessons are grouped into 6 categories: personal pearls, interpersonal pearls, motivational pearls, cautionary pearls, practical pearls, and professional pearls.

Details and sample chapters      Purchase


Requirements

"Getting the Most from a Requirements Management Tool." This white paper describes the many advantages that requirements management tools provide over traditional specification documents, the typical capabilities of such tools, and numerous tips for getting a high return on your investment in an RM tool. See Requirements Engineering Set #7.

"The Business Value of Better Requirements." Poorly written, ambiguous, and incomplete requirements cost software organizations a lot of wasted time and money. This white paper describes the many benefits of investing in high-quality requirements development and management processes, including a way to think about the return on investment that you can enjoy by making such improvements. See Requirements Engineering Set #7.

"So You Want to Be a Requirements Analyst?" Everyone talks about "requirements analysis," but not much is said about the requirements (or business) analyst. What kind of person should do this job? What do analysts really do? What do they need to know? This article addresses these questions and summarizes some key analyst skills: listening, interviewing, analysis, facilitation, observation, writing, modeling, and more. Tips for the new analyst coming from either the technical or the user domain are also provided.

"Requirements When the Field Isn't Green." Many software project involve adding enhancements to existing systems, rather than developing brand new, "green field," systems. This article describes seven principles that can guide how you apply sound requirements engineering practices on a maintenance project.

"Habits of Effective Analysts." The requirements analyst plays an essential role on the software project team. Here I describe the habits, practices, and characteristics of effective requirements analysts. A list of critical skills the effective analyst must master is also included.

"When Telepathy Won't Do: Requirements Engineering Key Practices." The best way to succeed with requirements engineering is to adopt known industry best practices. Eight such key practices are described in this article, helping any organization improve the way it elicits, analyzes, specifies, verifies, and manages its requirements.

"Karl Wiegers Describes 10 Requirements Traps to Avoid." This article describes ten traps lurking in the requirements engineering minefield. Several symptoms that you might be stepping into each trap are presented, along with some suggested strategies for avoiding the trap or extricating yourself from it.

(back to top)


Project Management

"Are We There Yet?" Defining your product's release criteria is an essential part of laying the foundation for a successful project. "It's June 30, so we must be done" isn't the best plan. Your criteria must be realistic, objectively measurable, documented and aligned with what "quality" and "success" mean to your customers. This article provides many examples of how (and how not) to write effective release criteria.

"See You In Court." Too many outsourced software development project wind up in litigation. The root causes of the project failure and resulting legal conflict are often related to the project's requirements, to communication issues, or to the project management approaches used (or not used). This article presents 15 recommendations for keeping your outsourced project on track and out of court. A checklist helps you perform a health check on your project, to see if it's heading for trouble.

"Good Money After Bad." Many software projects that suffer a lingering death should have been canceled much earlier. Although it is hard to pull the plug on a project with a weak business case, failing to do so does throw good money after bad. This article gives some tips on decision making that can help you avoid this outcome and shows how to use decision points to keep a good project moving along.

"Standing on Principle." Adapted from Creating a Software Engineering Culture, this article gives many examples of high-integrity and high-intelligence interactions among managers, developers, and customers.

"Creating a Software Engineering Culture." This article describes several cultural principles about software engineering that I think are important. These principles imply certain technical practices and managerial behaviors that are conducive to creating an environment focused on software quality through effective processes. 

(back to top)


Process Improvement

"Software Process Improvement in Web Time." Basic process improvement activities can benefit even fast-moving teams. This paper describes how Kodak's web development group undertook improvements in several aspects of project management, post-project reviews, risk management, change control, requirements engineering, development life cycle, and peer reviews. The approach taken and lessons learned are also presented.

"Read My Lips: No New Models!." This essay suggests that the software industry has more than enough models and frameworks for areas like process improvement, testing, metrics, inspections, risk management, and design methodologies. What we don't have is a large fraction of practitioners routinely applying these existing models in an effective way. Perhaps you'll agree with me; perhaps not.

(back to top)


Peer Reviews

"Seven Truths About Peer Reviews." This article highlights seven important facts about peer reviews: peer reviews can take many forms; inspections are a software industry best practice; there is no one true inspection method; peer reviews complement testing; peer reviews are both technical and social activities; managers can make or break a review program; and a peer review program doesn't run itself.

"Do Your Inspections Work?" This is a condensed overview of three ways to measure results from your inspections: efficiency, effectiveness, and return on investment. It describes several data items that you can easily collect from your inspections and some simple metrics to calculate from those data items. Inspections provide an easy way to begin a quality metrics program.

"Humanizing Peer Reviews." Peer reviews are at least as much a social interaction as a technical exchange. This article addresses some of the social and cultural aspects of peer reviews, including ways to overcome resistance to the process, benefits that reviews provide for various team members, the role of management, and 10 signs of management commitment to the review process.

"When Two Eyes Aren't Enough." Several different types of activities called "peer reviews" are described here, including inspections, team reviews, walkthroughs, pair programming, peer deskchecks, and passarounds. A table suggests which types of peer reviews are best suited for achieving specific review objectives.

"When Reviewers Can't Meet." When participants in a peer review cannot meet face-to-face, you need to use distributed or asynchronous review techniques. This article describes several ways to deal with reviewers who are separated by space or time.

"Seven Deadly Sins of Software Reviews." This article describes 7 common ways that technical reviews go wrong. Symptoms of the problem, and suggestions for getting the review back on track are also presented.

(back to top)