The Next Home of Chris Chapman's Free Thoughts on Agile, .NET, SharePoint, what-have-you, whatnot. 
Page 1 of 1 in the skills category
# Thursday, December 10, 2009

Earlier this month (Dec 2/09) the Director/Product Manager for SharePoint, Arpan Shah, posted a wealth of resources on his blog to aid in ramping up on the new platform.  I encourage going over and taking a look – and add his feed to your aggregator.  Here are some of my favourites:

White Papers – The closest thing to “books” before the release next year:

SharePoint 2010 Overview Evaluation Guide 
SharePoint 2010 Professional Developers Evaluation Guide 
SharePoint Server 2010 Evaluation Guide for IT Professionals
SharePoint 2010 and Office 2010 Scenarios

When to use ASP.NET vs. SharePoint:

SharePoint Server 2010 as an Application Development Platform 
SharePoint 2010 Developer Platform

For the Visual Learners: 

Learning Snack for Developers: Developing solutions with SharePoint 2010

Sharepoint_silverlight_learningsnack

Getting Started Developing on SharePoint 2010

Sharepoint_developer_center

Hands-on-Labs (HOL) Getting Started with Development on SharePoint 2010 C# & VB.NET – These are quite good as they get you the fundamentals in a follow-along-with-me format.

Admins – We Got You Covered, Too:

Check out the IT Pro 2010 video & top features
Walk through the
Learning snack for IT professionals: Experiencing the Microsoft SharePoint 2010 user interface 
Walk through
Learning snack for IT professionals: Managing and troubleshooting with Microsoft SharePoint 2010 
Read the
SharePoint Server 2010 Evaluation Guide for IT Professionals 
Take a look at the training and videos @
http://www.mssharepointitpro.com

Thursday, December 10, 2009 9:56:28 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] -
.net | sharepoint2010 | skills

# 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

# Friday, April 06, 2007
I know, I know.  I'm just one more in the litany of pundits offering their opinion on the FizzBuzz test that Jeff Atwood described in his Feb/07 blog post, among many others.  It intrigued me to see what the big deal was and how panicked I might get if I was issued the challenge in an interview.
 
For the uninitiated, the FizzBuzz test requires a programmer candidate to write a simple program that outputs the number 1 to 100 with a twist:  Numbers that are a multiple of three are replaced with the word "fizz";  those that are a multiple of five are replaced with "buzz".  Those that are a multiple of three and five are replaced with "fizzbuzz".
 
It's a simple enough problem that makes your fingers itch to write the loop and get to it.  I must admit that the solution I came up with was not my first - I arrived at the code below after thinking of a refactoring.  All in all, it took me under 10 minutes, which I think would be ok under Atwood's guidelines:

public
void RunFizzBuzz()
{
    
for (int n = 1; n <= 100; n++)
    {
        
Console.Write((n % 3 == 0 && n % 5 == 0) ? "fizzbuzz" :
            (n % 3 == 0) ?
"fizz" : (n % 5 == 0) ? "buzz" : n.ToString());
        
Console.Write("\n");
    }
}
 

Originally, I approached the solution from the wrong way 'round, starting with checking for a multiple of 3, then 5.  Checking for the multiples of 3 and 5 first made for a much more streamlined solution.

Right then!  I am eminently qualified for any programming position...

Friday, April 06, 2007 5:40:29 PM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] -
fizzbuzz | skills | software development

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)