Uncategorized


Below is a recent job description for the type of teammate that I am looking for to be on the team.   I have removed the company name because I really am company agnostic with regards to what I am looking for.  What do you think?  Let me know…

For teams to be world class, each team member must work in unison to cross the finish line. {Company Name} is currently building a team to Sprint to their commitments, reflect on their successes, and find opportunities to improve for the next Sprint. We are looking for those individuals up to the challenge.

The ideal candidate will be one that has the following traits:

  • A thirst for learning. We need those individuals that value life long learning principles. Impress us with how you learn.
  • Values collaboration, innovation, and communication. These words are key to your success here at {Company}.
  • Customer Service Focused. At the end of the day, this is what it is all about.
  • Team Oriented. This job isn’t for you if you aren’t comfortable with:
    • Pair Programming
    • Applying the 15 minute rule when you are stuck
    • Reducing the pain threshold of software development

Your experience should include:

  • Working in an agile environment. It doesn’t matter whether it is Scrum, Lean, XP, or mixtures of others. We need the concepts and your willingness to adapt.
  • Fundamentals of developing highly testable code in C# preferably. TDD is a goal, with the focus on improving quality
  • An understanding of the full Software development lifecycle from an automated perspective.
  • Are able to work with data. You should be able to understand SQL, general database design principles, and basic troubleshooting skills.

Development is core to this job of course. You will be working with the following technologies:

  • ASP.Net (MVP pattern)
  • ASP.Net MVC
  • Javascript, MS Ajax, JQuery
  • WPF and Silverlight
  • MSBuild, Team City, Subversion, and other build tools

Company Marketing Below this… :)

 

Technorati Tags: ,,
The Nomadic Developer: Surviving and Thriving in the World of Technology Consulting

 

I want to thank the Seattle .Net User Group for giving me the opportunity to review this book.  Everyone, please support your local user groups.

Overview

I thought this would be primarily about the journey of a developer.  How wrong I was.  This book is a terrific compendium of all I have know consulting to be but never have found in one place.  Any person that wishes or is a consultant, this book should be a must read on your shelf or kindle.

When I finished reading this book, I was compelled to do the following:

  • Get questions answered of the company I work for
  • Evaluate how I will be a consultant now and in the future
  • Let every person in my organization know that they should read the book.  I currently belong to one of the companies described in this book.
  • Establish my network and start building based upon who and what I know today

The Best Chapter

Without a doubt, I must say that Chapter 5 had nuggets of knowledge that will be with me throughout my consulting career.  This is a must read before you go on your next interview.  Even in today’s job market, not all job opportunities will be the right ones.  Use the questions in this chapter to help make your decision.

Sage Advice

I must say this appendix was not a hit with me, but may be for others.  I found the little tidbit highlights throughout the book were more valuable to me, instead of a few key consultants points of view.

Conclusion

Please take the time and read this book if you are in any of the following technology consulting areas:

  1. Recruiters – I believe you will get a fuller understanding on how to deal with developers and talk on their level.
  2. Sales – This book has 101 type insights for anyone joining the technology sales rollercoaster.
  3. Developers/Consultants – Please dive in.  This book is bound to help someone truly land in their ideal workplace and make good decisions.

Thanks Aaron

As a leader, coach, mentor, and manager I have been through many goal and objective meetings.  Through the conversations of helping determine goals for my team there are a few principles that I diligently adhere to:

These are not my goals but yours:

I have yet to complete goals that have been set by others with little or no input from myself.  It is a sad state of affairs when a manager has “determined what is best for the employee”.  When I first started leading a team, I was this manager.  To the detriment of the company I worked for, I alienated my team and made the goal process a wasteful paper drill that eventually ended up in the circular file.  To be fair though, the company instituted a very stringent goal setting process that lacked input from the employee.

Each individual now is responsible for going and providing the first cut of the goals.  I usually ask them to think about them in a S.M.A.R.T. goal format when presenting to me. I have found that this is very hard at the start for my team. However, we are getting better after a couple of iterations.  Below is an example of one of my employees (notice that it is not quite in SMART goal format):

  • Tech skills:
    • jQuery
    • WPF/Silverlight
    • Functional Programming / F#
    • Entity Framework
    • ASP.NET MVC
  • Project-related:
    • Remove a now-redundant middle-tier layer from our application
  • Business/Process:
    • Learn how to develop leadership skills among those with more technical experience
    • Develop an internal tool using new technology
  • Team goal:
    • Revisit and take ownership of the Definition of Done

Develop Goals for the Short Term

I typically ask that goals and objectives last no more than 1 quarter.  I have found this to be a very good time box.  This keeps the goals somewhat fresh in the employees mind.  It also helps to focus on some very specific goal setting.  Within the time period, I ask the individuals to “check-in”.  This allows me to help guide them to with resources and ideas to achieve their goal.

The most successful individual use this “check-in” process.

Defining The End Result

One of the most challenge areas that I face when determining goals for my team, is what the end result looks like. Ideally it is some physical artifact that can be presented or disseminated.  I work to ensure that the knowledge that my employees have gained can be shared.  A lot of times the end result is usually a process improvement within the team (which is usually the best from a business perspective).

This is the refined list from above.  Since the timeline is known (1 quarter), it is not shown as part of the goal.

  1. Pick 5 areas in our application where performance can benefit from doing things client-side using jQuery. 
    • Document the improvements and present them.
  2. Pair with each member of the team once per week. 
    • Observe how the process changes coding styles during this period (3 months).
    • Record the “a-ha” moments.
    • Present your findings.
  3. Research and develop one area of the build process.
    • Develop a custom MS Build script instead of using the Visual Studio Solution Build.
    • Discover online what others are doing but don’t just use their tools.
  4. Team Project: Develop a Virtual Scrum Board using WPF & ClickOnce.

This process gets better each time I sit down with my team.  What process do you use to define goals and objectives for your team?

For the last few months, my development team has added an extra process to their daily standup, everyone should share a blog that they have read.  The stated purpose was to get interaction within the team and knowledge share.  Lately though, it hasn’t had the effect that I wanted.

History

When we first started this process it was met with lukewarm adoption.  Initially statements were made that it was essentially a waste of time. Parameters had to be put around the type of blog entries when one person talked about a Lifehacker post on building something out of champagne corks. After providing the team my OPML list, everyone only stayed within that list to grab their blogs.

A trend started happening within the team.  The general excuse was “I didn’t have time to read a blog this morning.”  This has been very hard for me being a person that wants to share knowledge to benefit the greater good. From a positive note, when a good blog did come up some lively discussions ensued. The downside to this was stand ups could go off topic and focus, 15 minutes could become 30 minutes.

The Aha Moment

Yesterday was my aha moment. Two people didn’t share a blog because of whatever reason.  Then one person on the team stated that he would rather share something that he was working on that would benefit the team more directly.  That was when it hit me.  It is not so much of finding the blog for the knowledge sharing as it is of providing something of value that we can all learn from.

I stumbled across this article on Lifehacker today.  It demonstrates how to add a custom search on Vista’s Start menu.  I customized one for going to Dan Appleman’s SearchDotNet site.  Here is the text I used for the URL

 

http://www.searchdotnet.com/results.aspx?cx=002213837942349435108%3Ajki1okx03jq&q=%w&cof=FORID%3A9#1121

 

Notice, I put in the %w where my search text would go.  Now I won’t use slick run for custom searching on this site.

I thought this was a well done set of articles about MSBuild.  Brennan covers the topics necessary to work with MSBuild.

http://brennan.offwhite.net/blog/2006/11/30/7-steps-to-msbuild/