The Next Home of Chris Chapman's Free Thoughts on Agile, .NET, SharePoint, what-have-you, whatnot. 
Page 1 of 1 in the bookReviews category
# Monday, November 30, 2009

I recently came across a Nov. 25/09 post on Davy Brion’s blog, The Inquisitive Coder, that enumerates his recommended reading list for software developers who are wanting to step up their game.  This is a common theme on coding blogs, and there have been literally a galaxy of postings with some great and not so great recommendations guaranteed to perplex and flummox the average coder.

The implied line with all of these articles is that you ignore these tomes at your peril – you just won’t get to the “A” levels without them.

I like how Brion has broken his recommendations into three strata according to developer experience:  newbie, sophomore and grizzled veteran.  Well, sort of.  I mean, learning agile/iterative/lean software development really should occur at the start of your career as you’re going to have to unlearn the BDUF/waterfall crap that was loaded into your head by your CS/SoftEng profs who last “delivered” software (if at all) when 8–bit CPUs were da bomb.

What I don’t like is the complexity of some of the volumes that Brion shows – some of them are just so dense as to be inaccessible and not immediately applicable, eg. Eric Evans’ Domain-Driven Design.

Read/Master These Books First

If you want to get immediate benefits, try this shorter reading list:

  1. The Pragmatic Programmer:  From Journeyman to Master (Hunt & Thomas)
  2. Pragmatic Unit Testing in Java/C# (Hunt & Thomas)
  3. Refactoring:  Improving the Design of Existing Code (Fowler)
  4. Practices of an Agile Developer (Subramaniam & Hunt)
  5. Agile Software Development with Scrum (Schwaber & Beedle)

These books will help you begin to develop good habits – and in some places, possibly fired for wanting to implement.  That’s ok, because you don’t want to waste your life there, anyway. ;-)  It should take you 6–12 months to get through these and really internalize the practices and make them second nature.  I’ve recommended #5 because, as I mention above, you should get exposure to agile practices like Scrum sooner rather than later.

Read/Master These Books Next

You’ve got a couple of years under your belt and have seen the good, the bad and the ugly in the industry.  You’ve likely been on some bad projects and you’re beginning to question the wisdom of your chosen career path.  Take solace in these books to notch your game up further:

  1. Design Patterns (Gang of Four – Gamma, Helm, Johnson, Vlissides) – Alternatively, any book that explains patterns in your language of choice will help you “grok” them.
  2. Clean Code: A Handbook of Agile Software Craftsmanship (Robert “Uncle Bob” C. Martin)
  3. Agile Estimating and Planning (Cohn)

By the time you get through these (another 6–12 months) you will be truly cynical about the state of the industry, as well you should.  But you’re not wanting to be a “mort” or a “501” kinda coder – you’re wanting more.  So, you should supplement the above list with these titles:

  1. Death March 2nd Edition (Yourdon)
  2. The Mythical Man-Month (Brooks Jr.)
  3. Agile Project Management with Scrum (Schwaber)

These titles will give you the intellectual “legs” to position your strategies and arguments (yes, arguments) for implementing best practices with peers and managers.

Ongoing Professional Development

After you’ve reached your fifth or sixth year in the industry, you should have a pretty good idea about who you are professionally and where you think you’re headed:  Leadership, Consulting, Management.  Depending on your path, different books will influence your thinking.  You will likely be wanting to show what you’re capable of – perhaps in a new role or firm.  Some of these titles will help:

  1. Fearless Change:  Patterns for Introducing New Ideas (Manns & Rising)
  2. Agile & Iterative Development:  A Manager’s Guide (Larman)
  3. Implementing Lean Software Development:  From Concept to Cash (Poppendieck)

Conclusion:  Just Do It

In my experience, not very many folks who have a lot of “paper” experience have actually ready many of these books.  They’ve heard of them, but never read them or applied their lessons.  I’ve come across consultants who are really smart and with scads of experience who have yet to write a single unit test – or worse, think that a tool can do it all for them.  Common sense ain’t so common.

If you master 60% of the above list, you will be a better coder and professional than 3/4 of the people you’ll come across over your career.  It will take time, some personal commitment and in some cases risk – but it will be immediately worth it.  Follow the advice of Ken Schwaber (co-creator of Scrum) who urged attendees at a conference to actively begin improving their software delivery experience by implementing agile techniques by getting out there and doing it:  “Don’t procrastinate; do something – no matter how small.” 

 

Monday, November 30, 2009 1:35:03 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0] -
agile | better practices | book reviews | scrum | skills | software development

# Tuesday, September 04, 2007

This past Labour Day I took a trip to my local chain bookstore to pass an afternoon, get a cup of wonderful Starbucks and see what's new on the shelves.  As a reformed computer text junkie who once had a floor-to-ceiling collection of O'Reilly, Wrox and Microsoft Press books, I have to admit it's a bit of a voyeuristic thrill.

I was perusing the software development racks when my eyes alighted on three books side-by-side that I thought neatly illustrated the differences between best practices and worst practices.  Here are the texts in the order I found them:
 
 
 
Effective Prototyping for Software Makers - Jonathan Arnowitz, Michael Arent, Nevin Berger
 
Let's review these in turn, with the caveat that I only skimmed these texts for about 10 minutes each - which, in my experience is plenty of time to get the gist of the book as intended by the author.
 
Practical Software Estimation
 
It's beyond me how this book saw the light of day in 2007 when it's thinking is firmly rooted in the dark ages of software planning and estimation.  In brief, this book's thesis revolves around the Function Point Method of information systems estimation that Alan Albrecht developed for IBM in 1979.  It presumes, in good BDUF fashion, that to provide practical software cost/time estimates, we only need to know, up-front, all the functions that will go into the system.
 
Besides the fact that this is sheer fantasy, the clincher that this book should be relegated to the dustbin was a diagram where the famous "phases" of software development were laid out as the "ideal software delivery model" - ie. BDUF through to testing at the end
 
Suffice to say, if you pick this book up and become swayed by the poppycock about how the methods are used at InfoSys and decide that it's how your next project will be run, well, you'll get what you paid for - which ain't much.
 
SCORE: 0/5
 
Continuous Integration
 
CI is, sadly, still an emerging best practice in the industry that throws a spanner in the works for BDUF adherents because it is predicated upon the heretical belief that systems should be continually integrated, compiled and tested.  At least once a day.  Whenever anyone checks in code.  Automatically.
 
The lads who put this text together have some experience working with best of breed tools to make CI happen, ie SubVersion, JUnit and CruiseControl.  Now, if your team is using different tools, you may need to do as the Marines and improvise, adapt and overcome!
 
All this said, they do provide a lot of practical information and snippets on how to set up a CI solution and have it up and running quickly.  It's a practical guide for pragmatic developers.  Semper fi!
 
SCORE:  4/5
 
Effective Prototyping for Software Makers
 
This is a book that every software professional should have on their shelf, in my opinion (yes, I'm getting a copy!) because it espouses the very important principle that in software development, design matters.  This idea was impressed on me many times by a colleague at imason whose discipline was focused on usability, and has stayed with me because of the conceptual simpatico with agile/lean practices.
 
This text presents a very accessible way to model software applications using rapid prototypes that end users interact with early and frequently throughout the development process to keep refining the product.  To what end?  Why, a happy customer/end-user of course!
 
I was intrigued at the variety of strategies that the authors described, from traditional wireframes to mock-ups using Excel to the controversial Wizard of Oz mock-up where humans simulate how a system might behave once realized.  All combined, they show how better systems can be developed through prototypes that help bring the actual system closer into line with customer expectations - a radical concept in the industry!
 
Ultimately, I believe Effective Prototyping is a must-have book because it "break the blinders" that have constrained developers into believing that they are engaged in a manufacturing discipline and not new product development.  Once this distinction is made, however, there's no going back - so be sure that you want to "unplug from the Matrix" before reading this book!
 
Be sure to check out the book website for more info on Effective Prototyping and sample chapters.
 
SCORE:  4/5
Tuesday, September 04, 2007 10:22:11 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] -
agile | better practices | book reviews

# Wednesday, June 20, 2007

Addison-Wesley, 446 pages; ISBN-10: 0-321-42174-4
 
Addendum:  Each of the authors has a site or blog where you can learn more about them and their work, as well as collective blog hosted by Network World that was started to support the book and related topics.
 
 
 
It's not often that I come across a technology text these days that I'm really pleased with - I'll admit that I'm pretty jaded.  I've generally found that more often than not, the cover (and publisher) oversell the value of the book and its content.  It ends up being either too broad and shallow, or deep and esoteric or a rehash of documentation you could easily find on the net, and has very little by way of practical, real-world suggestions and advice.
 
None of these qualities characterize the second book I've just finished reading for Addison-Wesley/Pearson Professional Publishing:  Essential SharePoint 2007 - Delivering High-Impact Collaboration.  In fact, this has to be one of the best technical books about SharePoint I've read in a long time!
 
I believe this to be no accident but the direct result of the three co-authors' (Scott Jamison, Mauro Cardarelli and Susan Hanley) considerable industry experience (over 50 years between them) which contribute to a book that is focused on delivering practical information about the "whys" behind MOSS rollouts.  As they note in their first chapter:

This is not a book about SharePoint programming. However, this book is the ideal compliment to your development guide. It will give you some of the "why" of MOSS and help you understand your organization's business needs and how they might be addressed using MOSS...

If you're a project manager, consultant or business analyst, you'll find that this book helps with all the intangibles of a MOSS rollout.  For example, "What roles should exist to support MOSS?" or "What should my offline/search/business data strategy be for MOSS?"  This book also introduces you to some key technical concepts and provides simple walkthroughs of the key features that many businesses need to leverage.

This distinguishes Essential SharePoint 2007 from similar offerings - it is a manual about how to steward a successful MOSS rollout from a business perspective.  This flavour permeates every chapter which offers the business case for MOSS portal features from basic team space sites right up to full-scale collaboration intra/extranets, search tuning, dashboards, KPIs, Office integration and everything inbetween.
 
The book itself is well thought-out in this regard, stepping readers through understanding their collaboration strategy (who needs to have buy-in, how to measure success) to collaboration models and architecture, through content management and post-rollout support without being tedious and overbearing.  The summary of key points at the end of each chapter is almost superfluous given how well the sections are written.
 
However, what really surprised me (pleasantly) about the book was the authors' advice about building successful portals through agile-like practices:
MOSS is a product with many features; don't try to implement every one of them out of the gate. Identify three or four main features that will produce the most business impact, and do them exceptionally well....

Set clear and reasonable expectations for all business users... Your goal is to rapidly deploy a first release of your solution so that your stakeholders can see the solution "in action" with their content. You will probably find that it is only when users "meet MOSS" with their own content that they can then start to envision additional functionality that will add value to the business.
It is beyond rare to find words such as these in print and I found it refreshing and exciting: FINALLY!  Some folks who understand why we need to get frequent, small releases in front of the customer!
 
This theme of uncommon common sense is woven throughout the book making it very much in the same vein as Andrew Hunt and David Thomas' Pragmatic Programmer text - especially in their single chapter on migrations: Planning Your Move from SharePoint 2003 to 2007: Upgrade or Rebuild?
 
In stark contrast to SharePoint 2007 Unleashed, the authors here opt not to regurgitate the mechanics of the upgrade process and instead weigh the advantages and disadvantages of each approach (in-place, scratch, piecemeal) through proper planning as well as considering the post-migration support consequences.
 
I really wish that I had this manual last fall when I was engaged to create a six-track MOSS skills training curriculum for a project rollout my then-firm was developing for a client in the energy sector.  I had to sift through a lot of blogs, MSDN articles and sundry other how-to videos to cobble together slide decks and materials for my attendees, each of varying skills and abilities.
 
Had Essential SharePoint 2007 been in print, I'd have had the client purchase copies for everyone and construct a lesson plan from each chapter!
 
If you can't get a copy of this book, steal it from someone.  It's that good.  The best target audience for it are those with some practical experience with SharePoint, but it doesn't have to be extensive.  It would also be an excellent resource for middle and upper managers or similar IT leaders who are exploring a MOSS implementation for their firm and need to build a case for it, or need to mentor others in the fundamentals of MOSS.
Wednesday, June 20, 2007 6:51:47 PM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] -
sharepoint | book reviews

# Wednesday, May 23, 2007

SharePoint 2007 Unleashed by Michael Noel and Colin Spence, SAMS Publishing 2007, 840 pages; ISBN-10: 0672329476
 
Several weeks ago I was approached by a representative from Pearson Education / SAMS publishing to review their new series of SharePoint 2007 reference guides, beginning with the subject of today's post: Microsoft SharePoint 2007 Unleashed.
 
In the interests of full-disclosure for this post, I was provided a complimentary review copy of the book in exchange for blogging about my impressions - so, this post is without bias.
 
Now that we have that obligatory preamble out of the way, it's time to get to brass tacks - and they're heavy tacks:  Readers familiar with the "Unleashed" line will recall that the books are often hefty, and SharePoint 2007 Unleashed is no exception.  Weighing in at over 800 pages and 1.13 kg, the tome projects a no-nonsense treatment of the subject matter - sure to impress casual passers-by to your cubicle - and in this regard, it is thorough.
 
This is the second SharePoint Unleashed book that the authors, Michael Noel and Colin Spence, have written with the first focused on the 2003 version of the platform, and indeed they have leveraged their collective SharePoint 2003 experience to provide context to understanding MOSS 2007.  Unfortunately, this is both its strength and weakness, as the device is used so often throughout the book that it should probably have been titled SharePoint 2007 Unleashed for SharePoint 2003 Users. 
 
Indeed, the reliance on foreknowledge or experience with SPS 2003 directly impacts the target audience for the book as the authors seem to spend a lot of time addressing 2003-specific scenarios such as content migration patterns and strategies or how the new platform presents an improvement over the old.
 
As a consultant who has worked on both platforms, I understood and appreciated the juxtaposing of 2003 and 2007 features, however readers who don't have the background will find some of the references mystifying - and in my opinion, they're not really necessary.  In much the same way that OOP should be taught without a tour of functional programming through the ages, so too should MOSS 2007 be taught as an island unto itself.
 
Additionally, I hasten to mention in this regard that SharePoint 2007 Unleashed is not a book for those unfamiliar with the technologies that comprise a typical SharePoint installation (ie IIS, SQL Server, Win 2k3) - while steps for configuring and installing various components are outlined, the authors make an unwritten assumption that readers have at least a baseline familiarity.
 
Nonetheless, the content is expansive covering just about every element of planning, installing, configuring, tuning, monitoring and administering a SharePoint 2007 server.  In some respects, SharePoint 2007 Unleashed can be thought of as a well-annotated physical copy of all the help docs and MSDN references for using SharePoint.
 
Inside you'll find twenty-two chapters chock-full of information on how to do almost any basic task with the platform along with advice on "the right way" and "the wrong way" to approach your first installation.  I found the chapters on planning quite good as they address the tempation of many newbies to just rush-in and create site collections and libraries without thinking things through first.  This is vital, as a poorly laid out site won't be adopted and used in an organization, something that the authors underscore several times.
 
This said, if you are looking for greater depth similar to what you would find in an O'Reilly Press "Nutshell" book, you will be left a little disappointed.  While there are valuable insights and drill-downs, SharePoint 2007 Unleashed was written with the intent of doing a 1000' flyby as opposed to being an in-the-trenches technical field guide.  Depending on where you're at in your mastery of MOSS 2007, this could be just what you're looking for.
 
Structurally, the book is well laid out with several good features that I think could be expanded on to increase its value as a go-to guide, such as aggregating the interspersed tips, cautions and notes callouts at the back of the book, or at least a quick look-up.  They are arguably the best feature of the book as they draw on the authors' experience to shed light on problem areas that you'd otherwise be unware existed.
 
I also found the way the chapters were laid out to lend to a sense of overall consistency and coherency:  Each is prefaced with a set of bullets highlighting the key topic areas and conclude with a summary of "Best Practices" that were discussed - if you want to get a quick read, just go over these two areas and you're rapidly up-to-speed.
 
While I did find the first half of the book a rather pedantic review of "how SharePoint works", the latter half proved of higher value with focus directed on the more challenging (and often overlooked) aspects of managing a SharePoint installation, such as security, monitoring via MOM, using Remote Desktop to invigilate servers, leveraging ISA Server 2006, and using SharePoint Designer to perform administrative tasks.
 
Nevertheless, I felt that there were a couple of shortcomings even here.  For example, only cursory attention is paid to the STSADM command line tool for doing site backups - the rest is left up to the reader to discover on their own.  Now, Noel and Spence do provide a sample cscript to demonstrate automating STSADM backups (good), but in this day and age I was left wondering why they didn't demonstrate using NAnt or MSBuild for the same purpose.
 
This also brings to mind another inconsistency that I think would improve the reference value of the book:  The above script is provided in the book and on the SAMS publishing website - yet, there are no similar aggregations of the numerous and byzantine URLs to Microsoft resources made throughout the text - it's up to the reader to type in these amazingly long addresses and querystrings to find supporting content.  Might I suggest using a free service like TinyUrl or Shrinkster to make it easier on both the writers and the readers?
 
An additional shortcoming that I have to mention because it does affect readability is the numerous grammatical and typographical errors I encountered.  For example, on page 571 of my copy under Downloading and Extracting the SharePoint 2007 Management Pack for MOM 2005 my eyes literally stumbled on this:
 
To install$I~MOM (Microsoft Operations Manager);Management Packs;downloading> the MOSS 2007 Management Pack on a MOM Management server...
 
It seems that this book was rushed to print and editing was compromised in the process.  Again, it's a notch above being a minor nuisance because the "bugs" are so pervasive and will definitely distract attentive readers.  My advice:  Wait for the 2nd edition when they nail these.
 
Overall, I found SharePoint 2007 Unleashed a good "soup-to-nuts" reference guide about the platform that is generally well-organized and thought out in its treatment and presentation of the material.  There are a lot of screen captures to help visualize the numerous interfaces MOSS and its attendant utilities and apps (like IIS and SQL Server 2005) sport, as well as breaking down various tasks into steps that are easy to follow.
 
In the final analysis, however, I'd have to recommend this book only to would-be administrators with an intermediate level of experience with Microsoft technologies - some exposure to SharePoint 2003 wouldn't hurt, either.  This book can provide a lot of food for thought that can be shared with a team or managers to build a case for deploying MOSS in an organization, but it has to be in the right hands!
Wednesday, May 23, 2007 8:54:12 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] -
book reviews | sharepoint

About Me
I am a Toronto-based software consultant specializing in SharePoint, .NET technologies and agile/iterative/lean software project management practices. Currently, I am employed by Microsoft Consulting Services (MCS) Canada as an Application Development and Information Worker Consultant, focusing on delivering guidance and subject matter expertise to enterprise customers who have or are in the process of deploying Microsoft technologies.

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.

© Copyright 2010
Chris R. Chapman
Sign In
Archive
<March 2010>
SunMonTueWedThuFriSat
28123456
78910111213
14151617181920
21222324252627
28293031123
45678910
Statistics
Total Posts: 194
This Year: 2
This Month: 0
This Week: 0
Comments: 109
All Content © 2010, Chris R. Chapman
DasBlog theme 'Business' created by Christoph De Baene (delarou)