Skip to content
Dynamics of Software Development

Book Review-Dynamics of Software Development

More than 10 years ago Jim McCarthy wrote the first edition of Dynamics of Software Development.  At that time it was a great book.  It helped identify specific behavior patterns that software development teams fall into.  Perhaps the most familiar behavior pattern is flipping the “Bozo bit” – in other words writing someone off as not a valuable member on the team.  Small nuggets of insight like this one are woven together into a tapestry of the behaviors you don’t want to see in your team.

But that’s where the 1995 edition of the book stopped.  You knew what you didn’t want to see and had sign posts to alert you that they were coming.  However, there was very little in the way of support for creating the right kind of behaviors and exterminating those behaviors that you had been warned about.

The 2006 edition in addition to the 1995 content has content designed to support your transition from a team where these behavior patterns are the norm to one where you’re looking for the rare case where there’s some bad patterns emerging.

The “Core System” as Jim and Michele McCarthy describe it is a set of patterns, antipatterns, and “Core Protocols.”  The “Core Protocols” are as set of specific behaviors which support the proper working of a software development team and inhibit the growth of some of the other patterns that are not so favorable.

Dynamics is a book that every development leader should read.  More than that — it is a book that should be used as content for team meetings.  By dissecting one of the 57 rules included in the book you can generate a few minutes worth of discussion on a single, important software development project so that you can move the team forward, one sound byte at a time.

WebCast: How Hackers Exploit Application Weaknesses

With operating system patches being applied more uniformly, hackers have been forced into the application stack to look for vulnerabilities.  Yesterday I did a web cast on “How Hackers Exploit Application Weaknesses”.  An on-demand version of the web cast is available at http://www.jupiterwebcasts.com/_archives/2006/webcast_08-23-06/index.html

WebCast: Project Management for the Developer

Yesterday I gave a web cast which talked about Project Management for the Developer.  It is designed to give developers a context for understanding project management and project managers.  An on-demand version of the web cast is available at http://www.jupiterwebcasts.com/_archives/2006/webcast_08-22-06/index.html.  If you are a developer looking to learn more about project management — or you have developers that you work with who need to become more project management aware the web cast will help illuminate some of the motivation and techniques — both good and bad.
Agile Software Development: The Cooperative Game

Book Review-Agile Software Development

With all of the books with “Agile” in their title today why would anyone want to single out Agile Software Development in particular?  My reason was the author Alistair Cockburn.  Alistair has been a part of the agile movement being both an original signatory on the Agile Manifesto and the proponent of the Crystal Clear methodology.  In other words, the resume isn’t bad.

Agile Software Development is both interesting and unique because it’s unlike other books about agile development that you might read.  First, it’s in some ways more of an extension of Peopleware and The Psychology of Computer Programming.  It talks about why developers behave the way they do without condemnation or excuse.  It speaks about the way things are and what you can do to get better results.  Alistair’s understanding of the dynamics of communication can help you construct solutions that allow your team to communicate more effectively.  Either its “rearranging the furniture” or “vandalizing the walls” there is an understanding into the psychology of how things work – and why they work that can be effective whether you’re deciding to adopt an agile methodology or not.  (“rearranging the furniture” and “vandalizing the walls” aren’t his terms – their my colorful summaries of things like evaluating communications like the dispersion of heat or a gas and a concept that Alistair refers to as information radiators.)

On the topic of methodology there’s a lot to be had as well.  I’m preparing for a web cast titled Defining Your Own Software Development Methodology.  In that web cast we’ll be talking about how to create – or more appropriately tailor – a methodology for your organization.  In addition to having some great “sound bites” for that discussion, the model that Alistair uses to talk about methodology creation has influenced some of the web cast material.  Coverage of the characteristics of a methodology, the way to approach usage, and the impact of lighter and heavier methodologies have all been positively impacted.

I’ve always respected the simplicity and usefulness of Alistair’s breakdown of projects based on size and criticality.  The breakdown of criticality into Loss of comfort (C), loss of discretionary monies (D), loss of essential monies (E), and loss of life (L) has been quoted many places.  The reason I appreciate it so much is that it simplifies the task of speaking of the size and characteristics of a software development effort into something that can be quickly understood by all.

As both a word of caution and one of praise, Agile Software Development doesn’t take a formulaic approach to delivering the content.  Instead it gives you all of the components you need to understand how things work and leaves the exercise of making it work to you.  While I find this approach very appealing because I am looking for different views and perspectives which I can add to my toolbox, it may be frustrating for readers who want someone to tell them what “the answer is.”

I leave you with one of my favorite sound bites from the book (p71):

“Although heroes who work overtime may be needed to save poorly run projects, there is a much more interesting phenomenon to observe: ordinary people doing their work with a sense of pride and community and in doing that work noticing something wrong, passing information to someone who can fix the problem, or stepping out of their job descriptions to handle it themselves.  This is an indicator of a community in action, not an indicator of a poor development process.”

Agile Software Development with Scrum

Book Review-Agile Software Development with Scrum

If you regularly read this blog then you know that I’ve been doing a lot of reading and reviewing of agile methodology books. (Agile & Iterative Development: A Manager’s Guide, Balancing Agility and Discipline: A Guide for the Perplexed, etc.)  It’s a curiosity of mine both in terms of looking for things that can help with current methodologies and how one might do the best implementation of an agile method in a project.  I’ve also been reviewing more traditional software development titles to see how they might be useful in making projects more successful (The Security Development Lifecycle, The Psychology of Computer Programming, Peopleware, The Rational Unified Process Made Easy: A Practitioner’s guide to RUP, etc.)

One of the challenges is finding a book that talks about real world experience with agile methodologies.  Agile Software Development with Scrum is that book.  While Ken Schwaber and Mike Beedle are careful to include the fundamental psychology that makes Scrum work, they also share many personal experiences with how projects have succeeded or failed – and what factored into those successes and failures.

While the book won’t make you a good Scrum Master right out of the gate, it does go farther than other books in explaining the psychological underpinnings of Scrum ideas so that you can adapt the methods to suit your needs – most Agile proponents and books advocate a “no changes” sort of policy.  While this book doesn’t directly encourage making changes it takes a much softer line on the issue than previous agile development books.

Whether you’re looking for the practical details of how to implement scrum or the background to understand why scrum works, you’ll find an answer in Agile Software Development with Scrum

Blink: The Power of Thinking without Thinking

Book Review-Blink

Back in January I read (and reviewed) Malcom Gladwell’s book The Tipping Point.   I liked it so much that Malcolm’s next book, Blink, quickly made my reading list.  I don’t read many books that don’t have some sort of technology tie-in so Blink was a good change of pace.

The basic overview of Blink is a walkthrough of how we make snap decisions (quick decisions), why they’re mostly right, how that works, and how to make better use of the unconscious thinking that goes into  those quick decisions.

The subtitle “The power of thinking without thinking” is appropriate because it exposes how our unconscious mind is always thinking about the situations around us even when our conscious mind is not.

It’s a great exploration of the topic – particularly since I’m fascinated by the change that takes place from the first time you do it vs. when you’re proficient at it.  Flying for instance.  The first time I flew a plane it was way too much information.  I couldn’t do things fast enough.  I couldn’t evaluate all the variables faster than the plane was flying.  Now I don’t even consciously think about the variables involved in landing a plane.

If you’re interested in how you make snap decisions, why they’re right more often than not, and what to do about the situations where you’re not right, Blink is a book you should read.

The Security Development Lifecycle

Book Review-The Security Development Lifecycle

The need for a higher level of attention to security in applications is something that we must unfortunately deal with.  Finding a set of developers with an intrinsic knowledge of security is much like looking for a taxi cab when it’s raining.  You know they exist but you don’t know where to find them.  That’s why you need a framework for creating the right kinds of security awareness, knowledge, and discipline.

If you wanted to find an example of an organization who clearly exemplified the problem a few years ago and one which had made great advancements in the area of security, the best example may be Microsoft.  Microsoft was once the favorite target for hackers and the media, Microsoft is making progress towards becoming the most secure products available.

The Security Development Lifecycle is a look at how Microsoft has made this transformation with specific guidance on what to do, how to do it, and what the impacts are.  Asides within the text highlight items that worked well for Microsoft but may not work well for your organization – and techniques that were expected to be greatly helpful but were not.

The book is amazingly insightful in terms of its view of the problem.  There’s no bravado about having all the answers nor is there any concrete feel to these are the only answers.  It’s a good discussion about what has worked in practice.  The authors clearly believe that new types of security vulnerabilities raise their heads as new attempts are taken by security researchers to break the software that we produce.

While the details of individual lines of code are not thoroughly covered, the core concepts are explained well and with enough detail that you can develop your own coding practices which are inline with the overall security strategy.

This is a must read for architects and development team leaders who are concerned with the security of their code.  It’s a great read for those developers who have an interest in leading a development team at some point.

WebCast: The Basics of Setting Up Your Own Wireless Network

A month ago at ITEC in Indianapolis (http://www.goitec.com), I delivered my third consecutive year of the basics of wireless networks.  As I’ve been playing with alternative content delivery to help reach out to more folks in the community I decided to trim the content back to what I believe are the essentials and edit the presentation down into a web cast.

I’m happy to announce that the first Thor Projects web cast titled “The Basics of Setting Up Your Own Wireless Network” is now available.  Please feel free to pass the link along to any of your friends, relatives, aquaintenences, neighbors, postal persons, children’s sports coaches, etc., that ask you how to setup their wireless network.  I particularly encourage it for those who have neighbors with completely open wireless networks.

Article: Top 10 SharePoint Myths

There are a lot of myths in the world we live in. I won’t comment on the “myth” of the Loch Ness Monster or sasquatch (Bigfoot). Those are “myths” that are way beyond my ability to dispel. However, there are SharePoint myths that can and should be dispelled. By dispelling these myths for yourself, for your peers, and for your customers, be they internal or external, you can dramatically improve your SharePoint project’s chances for success.

http://mssharepoint.advisorguide.com/doc/18073 [Website no longer available]

Recent Posts

Public Speaking