| Publications | SCM Patterns | Suggested Books | Community | Software Development | About this site |
|
berczuk.com Home
|
Implementing Lean Software Development is an essential resource if you want to understand the value of lean software development. It explains the theory of lean manaufacturing and how it applies to software development. It contains practical advice for implementing Lean and anecdotes to help you to understand the value of Lean. This is a great addition to the library of any agile developer or project manager.
A Wicked Problem is a problem where some of the solution space lies within the problem space; the problem is only fully understood after it is solved. Thsi book describes how many programming problems fall into the catgegory of wicked problems and how waterfall softwarae development practices are not well suited to these kinds of problems.This book explains how agille approaches are more suited for many software development projects. In addition to all of this, this book had many excellent references.
This book is an excellent overview of why Continuous Integration is important and about more than just compiling frequently. The book helps you to understand why to do CI, what you can do beyond building, and how to do it. In addition to general principles, the book points you to some excellent tools and resources. This book is an excellent companion to Software Configuration Management Patterns; it provides teriffic information that support the build patterns in that book.
This book helps you to understand why creating production ready code requires work at many levels: creating the deployment architecture, operations scenarios, and just plain writing code and testing. The book covers issues that every architect, developer and release engineer should know. The book has principles, patterns, and resources to help you identify production problems, prevent them, and survive them when all else fails.
One of the better features of the book is the stories that help you to understand issues and demonstrate that Nygard's lessons are based in experience. The lessons are (as the name of the series suggests) pragmatic, and each chapter leaves you with enough information to make changes to improve your application.
In books of this sort there is a balance between "principles" that are timeless and "how to" techniques that you can use immediately. This book is biased slightly towards Java, and contains a few references to current tools, there are enough general principles that there is little in the book that will date it.
As I read the book I found information about many topics that arose in each project that I have worked on, as well as things that I felt that I needed to learn more about.
After I finished the book I felt energized to do things better. If you build enterprise applications buy this book to learn how to build more production-ready applications. If you already know the lessons in the book, buy a copy or two for your colleagues who may not so that your life will be easier and you can get fewer late-night phone calls about a system you helped build.
If you need a good overview of what it takes to deliver software, give this book a look. It is easy to read, clearly written, and covers the important stuff. The book is geared at people who are less than experts, and as such covers some of the topics very briefly, but the book has some excellent pointers to other sources. The authors do a great job of collecting pointers to resources where you can learn more; you will want to keep the book around as a reference for them. The authors talk about a form of agile development that emphasizes tracer bullet development and a feature-based (as opposed to time boxed) approach to setting a delivery schedule. I tend to think that time boxed approaches are more useful, but the other good information in the book still makes sense if you use any approach to developing software. The authors also have some very practical advice on tool selection. The tools and infrastructure section of the book have pragmatic advice on how to implement the patterns in the Software Configuration Management Patterns book, and I wish that the authors had referenced the SCM Patterns book, if for no other reason than to help establish a common vocabulary in our domain. Over all, this is worth a read to learn (or reenforce) some of the basics about keeping a project running well. And if you already know everything in the book, buy a copy for your colleagues who don't!
This clearly written book provides insights into some common and vexing problems about how to do estimation and planning. This book helps you to prioritize what you want to build as well as as how long it will take to build it. The facts are complimented with stories from Mike Cohn's experience, which makes this book entertaining as well as informative. Much of the information in the book sounds obvious, but since few projects get estimation, scoping and planning right, it's pretty clear that it's only obvious in retospect. This book is a must have for people who are running agile teams and those who play the role of product owners. It will remain a useful reference througout the project. Even those on non-agile teams will find the chapters on selecting and prioritizing features useful.
This book explains, in detail, the value of having a tester role on an XP project. Much of what is written on XP focuses on the role of developers in writing tests, and this book will help you understand the value that testing professionals can add to an XP, or other agile, project. The function of a tester changes when a team applies XP; In the spirt of lean software development, this book shows you how to apply the skills of testers in a new environment. One minor flaw in the book is that it is targeted at testers. While testers need to understand how to apply their skills to an XP environment, others such as Coaches, programmers and project managers also need to understand the value of testers. Get this book to understand how testers can improve your XP project.
This is an excellent book about how to develop software
quickly in the face of changing requirements, and the definitive
description of what Extreme Programming is. The second edition
reflects the experience of doing XP for the 5 years since the
first edition came out. This edition clearly explains the
relationships between principles, practices and values, which is a
frequent topic of discussion in the XP community. Extreme
Programming Explained, 2nd Edition is really about the human side
of programming; With this book Kent Beck has earned a seat next to
Jerry Weinberg as someone who understands how to apply an
understanding of human nature to the problem of how to build
software effectively. Get this book if you want to apply XP in
your organization, or even if you simply want to improve your
practices; there is much to learn from the XP approach, even if
you can not, or will not, apply it fully.
The material in this book is excellent, having been developed over a
number of years. In addition to wonderful, well written, patterns that
advise you on how to spread ideas, this books is full of stories that
help you to understand how to use the patterns effectively to influence people,
overcome roadblocks, and spread new ideas. Anyone who has new ideas to
share will benefit from this book including: Managers and Team
members, Professionals and Volunteers, people in industry and those in
community organizations.
If you work with or live with other people you should read this book. It is filled with information on understanding how communication gaps happen, and practical advice for resolving commuunications issues with other people. Most of the advice seems obvious, yet it if often the obvious that one needs to be reminded of. Among the extremely practical bits of information in the book is are dicussions of communication models (so that you can understand why communication might break down), and a chapter on how to write Service Level Agreements.
This book explains why lean manufacturing
works. There is much you can learn about lean software development by
learning about lean thinking in this, more concrete, domain. Read this
book to learn the more general concepts of lean production so that you
can better understand them and better explain them to your software
development colleagues and management.
People build software systems in organizations, and
the interesting problems often occur at the places where
technology issues and people issues intersect. An
understanding of how software organizations work is
essential to building good software systems. Coplien and
Harrison are two of the pioneers in writing patterns about software
organizations, and this book is a useful guide to helping you
understand how to build effective software development
organizations.
This book is about running requirements workshops and
more. Requirements workshops are an important tool for understanding
what you need to build. The techniques in this book will be useful in
many other group discussion settings, and will help you have more
productive meetings. The book discusses, among other things, roles in
workshops and decision rules (deciding how to decide). Each chapter
ends with a list of excellent references that you can use to probe
further on techniques. Anyone who is involved in group decision making
should own a copy of this book, read it, and refer back to it
often.
This book helped me understand more details about how to implement
Scrum. The combines some simple overviews of Scrum rules and practices
with case studies. The rules of Scrum are simple. Apply these rules in
your context can be tricky. I found that the case studies that thread
throughout the book really helped me to understand some of the nuances
of the Scrum process. And if you want a checklist, there is a appendix
that summarizes the rules of Scrum. This is a great book if you want to learn about Scrum as a project management tool, or if you have been trying to use Scrum and want a chance to renew your understanding.
This is an excellent summary of the UML, and a great guide to how to
express OO models using the UML. If you buy only one UML book, get this one.
It The third edition is updated to the UML 2.0 spec. Fowler explains that
the book is best for people who want to sketch UML diagrams to explain their
designs, rather than who want to use UML for formally, but that may well be
all you need to do with UML. This book also explains some key concepts
of OO design. Every software developer should have a copy of
this book on their shelves!
This is an excellent guide to writing User Stories. In addition to explaining what user stories are and how to write them, the book shows you how user stories fit into the development process and answers many of the common questions that arise when one starts writing stories. If you want to start using stories as part of your development process, buy this book; you'll want to read it and have it around for reference later.
This book answers many common questions about Pair Programming and supports the answers with data and stories. This is a very readable book, and will be an excellent resource for anyone trying to implement pair programming, or convince others of its usefulness in appropriate situations.
Project Retrospectives is a must have for anyone who wants(or needs)to understand what happened on their last project. If you plan to conduct a retrospective, the book will show you how with exercises to use with your group. Even if you do not run formal retrospectives, the techniques in this book will help you get a more candid view of how things on your project work.
In this book McBreen gives a well reasoned
discussion of what XP is and is not, when it works and when it
might not work. The book is positive about the merits of XP,
when used in the right setting. This book will be valuable to
anyone who is considering changing their development approach,
even is they are not considering Extreme Programming. Both
enthusiast and skeptics alike will find the material in the
book thought provoking.
Planning Extreme Programming gives you advice on how
to fit the XP Planning game, and related aspects into the
larger context. This book will be particularly useful if you
have had to reconcile the XP approach of incremental
development and planning with an organization that takes a
master plan approach.
Extreme Programming Installed describes how to
implement XP practices with practical advice based on
experience. Buy this book when you are ready to implement XP
for your team.
The principles that this book discusses: Release,
Collaboration Ensemble and Play are extremely relevant to
creating effective software teams. The principles are inspired
by observing how theatre companies work, but they also have a
basis in lean manufacturing. If you work as a
software developer or manager and have ever worked on a
theatre production (community theatre or at school) a light
will go on immediately. If you haven't The data that the
authors provide about lean manufacturing practices and
software development will convince you that there is a lot
that we can learn from this metaphor. The theatre examples will be
helpful in explaining how the principles work if you need to
communicate them to a manager who does not understand software
development. Buy this book and place it along side your books
on agile software development; you will want to read it and refer
back to it frequently.
This book discusses the psychology of optimal
experience, in other words, happiness. This books is
not a how-to book, but rather a why book. Reading this book
may give you great insights into how to enjoy all aspects of
your work and private life.
Excellent book that explains Scrum, one of the more
popular agile development techniques. The approach in this
book is very pragmatic. The authors discuss what Scrum is and
how to apply it in various environments.
All you ever wanted to know about product
management, but were afraid to ask. This book discusses the
relationship between technical-architecture and
marketing-architecture. This is an oft-neglected subject, but
it is important as marketing and technology are both important
for a successful product. This is a great book to read if you
design software systems, or are involved in product
management.
You should buy this book if you have any role in
making decisions about your project. It discusses how how
manage risks and explains why some corporate cultures
discourage risk management, often to their disadvantage. The
writing is very clear. This is a quick and informative
read.
This is a classic book. Everyone involved with software systems: developers, managers, and customers, should read this book.
This is a unique book. It tells you about the
writers workshop process. The writers workshop process has its
origins in the creative writing community, and has been used
in the software patterns community. Richard Gabriel explains
how the process can also be used in other domains where
creative effort is involved, such as reviewing marketing
materials. I book for two reasons. First it provide great
insight into the creative process (as applied to anything) and
the values that are used in the writers workshop can benefit
anyone who creates things, even if they don't use the workshop
process. Second, if you do want to use writers workshops, this
book explains the hows and whys of them. I had been involved
in workshopping software patterns since 1995, and I though
that I pretty much understood what they were about. I learned
a lot reading this book. I recommend this book for anyone who
involved in the creative process(of any sort): Software
engineers, writers, teachers, and students.
This book describes Essential SCM
practices. Developers, team leaders and those just learning about
software configuration management should find this book
useful.
This is an excellent book that explains very clearly how working longer hours with fewer resources in the quest for efficiency is counter productive for knowledge work, such as software development. This is a quick read, with many interesting stories to support the assertions that the book makes. The book is targeted at managers but also makes the point that leadership can happen at any level in the organization.
An excellent survey to the principles of agile
development approaches such as Extreme Programming , SCRUM,
and others. The book mixes discussions of the core ideas with
interviews with some of the founders of the Agile Alliance
.
DeMarco's book is similar in style to The Goal but covers software development rather than manufacturing. The protagonist takes on a difficult management assignment and learns many of th e lessons of modern project management. It is a quick, enjoyable read, and it passes on its lessons with humor, so they are easily remembered. You will want to read some more traditional books on project management, it addition to this book, but this book motivates the lessons in more traditional books.
A classic book! This is the original text with
comments by Weinberg at the end of each chapter on what he'd
say differently now. It is easy to get past the examples
which revolve around batch systems, and realize that the core
ideas in the book are still valid.
This book has lots of good information for technical people at all levels. This book even has some good work-style and problem solving ideas for non-technical people.
Everyone consults, according to Weinberg, and you'll
find lots of useful stuff here, whether you are a full time employee,
contract employee, or someone who is considering
consulting.
This book talks about how you can keep yourself
focused on doing the right things. The text and examples are geared
to consultants, but most everyone will find these "tools"
useful.
The three books of the 4 volume Quality Software
Management series I've read
(Volume 1: Systems Thinking , Volume 2: First-Order
Measurement , and Volume 3: Congruent Action ) had really
good stuff on the people issues that affect software
development. Even if you are not a manager, these books
provide you with information on how to work more effectively
with team members and managers alike, and, understand, if not
justify some annoying management practices. (I haven't yet
read Volume 4: Anticipating Change , but there is probably
valuable stuff in there as well.)
Even if you are not a manager, the books in this
Quality Software Management Series provide you with
information on how to work more effectively with team members
and managers alike, and, understand, if not justify some
annoying management practices.
Even if you are not a manager, the books in this
Quality Software Management Series provide you with information on how to work more effectively with team members and managers alike, and, understand, if not justify some annoying management practices.
This book is about how people make decisions in a variety of circumstances. This includes solo decision making in crisis situations, as well as team decisions. Discusses the value of stories in expressing and clarifying the decision making process. The discussion of stories (known uses) and the importance of clarifying intent while giving instructions make this worthwhile reading for those studying patterns as a means of conveying expertise.
This book really made me think about my work, both day to day and career-wise. Covers practical approaches to improving culture, communication, and work environment. My favorite chapters were Avoiding Bad Working Environments and Working In a Poor Environment .
An excellent resource on how to approach issues at work and at home. Should be required reading for everyone who is part of a team or a relationship.
This is an excellent book about how to build good interfaces. The book, at first glance, is geared towards uasbility professionals, but anyone who has a role in building or specifying systems that have some sort of user interface will benefit from reading, and referring to, this book.
An excellent book that describes best practices for
the entire software development lifecycle. This should be required
reading for anyone planning or working on a software
project.