Source Control Best Practices List :: Tip o' The Day

Subversion is in the entry title, but these really apply to just about any source control being used for almost any type of project.

  1. Update every time a build is successfully completed on the server to assure you are using the latest and your code still builds locally.

  2. Check in as frequently as possible.  Every 30 minutes is a good standard.  Make sure to get an update before hand to assure a good build before checking in.

  3. When making edits that cause *.sln file changes make sure to check them in immediately before adding code files or anything else.

  4. Keep in mind the virtual “state” and “revision” mind set that source control is built around.  It doesn’t work like the regular file structure, but pretends to act that way.

  5. When the build is broken, everyone should STOP checking in code immediately until it is fixed.  If need be everyone should participate in the fix.

  6. Do NOT commit (check in) when the build is broken.  This only compounds any prospective issues and possibly drags out the build resolution.

Technorati Tags: Source Control,Subversion,SourceSafe,CVS,Best Practices

del.icio.us Tags: Source Control,Subversion,SourceSafe,CVS,Best Practices

Source Control Etiquette :: Tip o' The Day

Some more quick best practices for using source control.

Simple Rule:  Check in often, build often, and keep updated as frequently as you have code that builds.  This prevents merge conflicts, overrides, and other goofy nonsense that no one wants to deal with.

I would say it is a good idea to update every time a new successful build occurs on the build server.

Commit (check in) every time new working code is completed.  This should be every 30 minutes to an hour.  If not, you’re probably working through tasks that are too big at one time and the tasks need to be broken down further.  This is also a sign that TDD is not being followed closely (or at all).  Even if test after is the process, tasks should be 30 minutes to an hour, and should be committed accordingly back to the repository.

Technorati Tags: Source Control,Etiquette

del.icio.us Tags: Source Control,Etiquette

Visual SVN & Database Projects in VS.NET :: Tip o' The Day

In Visual Studio 2008 when using Visual SVN there is a slight issue when using database projects.  Visual SVN doesn’t know to check in the database project file itself so it will lose the database project whenever a fresh checkout is done against the repository.

So if you are using Visual SVN & VS.NET make sure to go into the actual directory structure and “Add” the database project file into the overall committed solution.

Technorati Tags: Visual SVN,Visual Studio,VS.NET,VS,Subversion,Database Project

del.icio.us Tags: Visual SVN,Visual Studio,VS.NET,VS,Subversion,Database Project

Gun Toting Mercenaries…

…Yeah Us, Get Out of Our Way We’re Leading!

Over the last few months I’ve worked through some projects that have a unique trait.  The last time I worked in a scenario like this it was at Bank of America.  At Bank of America some of the team was in Jacksonville, some where in Atlanta, others in Charlotte, Seattle, San Francisco, New York, and a few more disparate locations.  Looking back these were all amazingly efficient and well run projects.

Today I lead these efforts in my off time in addition to my day job.  I find it easy, in contrast to the struggle many companies seem to have with internal development.  My efforts move forward quickly, with a few blockages here and there, but overall without major problems.  Of course, I suppose I deserve some of the credit, but really it is the process and the ability of the team that I have put together.  Just as it was before, the enabling of a highly skilled team is without reproach.  I’m extremely proud to be included in this effort.

Right now I have a staff of two, one in Portland and one in South America (never really know “where” he might be).  This current team I’ve only had together for about 2 weeks now and they’re already productive.  In the past I’ve had up to three other people on the team.

Now I’m going to gloat for a second and brag about leadership.

Gloating Good Leadership and Good Scheduling

When the leaders of companies come to me for assistance with consulting, integration, implementation, or development I give them two choices; scheduling or motivation.

Schedules Cost Money,  Tight Schedules Cost TONS of Money

One is they can have schedules and I’ll control the schedules 100% and expect 100% deliverables.  The minute one of those deliverables is not received the entire schedule will be redone, dates changed, and other items altered as needed.  Possibly with a change of scope, altered functionality, or other differences.  I’m very strict about this, I don’t care if it is a meeting or whatever, arrive 5 minutes late we’re going to change the schedule.  With a changed schedule comes a whole new slew of billable hours.

Mind you, I don’t drive the schedule into the developers minds, that is my problem as the manager.  The worse thing for me to do is to tell the developers when they HAVE to deliver something.  It is merely a death knell of project success.  I merely provide a steady flow of requirements, ideas, thoughts, and motivations.  When I have this control, I’ve never missed a deadline, but it is stressful, and thus the reason that the schedule WILL be rewritten many times when the deliverables fail to arrive on time that the developers depend on.

Motivation is Worth Thousands Per Year, Multiplied by the Motivated

If schedules are tossed aside and I can work the team as I know they’ll be most useful, motivation comes to the forefront.  What motivates a team, what makes that developer want to write code when they get up?  Is it the beer in the evening, is it the clean steady flow of requirements or the ability to make sure the code is “clean” and the “implementation is good” that drives and individual?  Either way these things are keen to me.  When I’m allowed to focus on these motivations, the core functionality, the specific features, then things really get done.  Deliverables are generally more than met, often surpassed.

If schedules are tossed out the window, and the cart isn’t shoved out in front of the horse to fall on, the product is often provided in one solid, reliable, resilient piece of work.  These are the product deliverables that most teams can only dream of.

The Leadership of Companies that Can Lead with Motivation…

ROCKS!  Period.  They are the brave ones, the leaders who have cast aside the “waterfall” of failed projects over the years and stepped up to try something that works.  They’re the ones who step inside the mind and realize that to lead, one must serve.  Without then the team cannot truly produce.  To lead you must destroy the stress of the team.  To lead you must serve their need to move forward and progress in the project.

Whatever the case, don’t stagnate, don’t manage down, make sure your teams don’t have to manage up.  Learn how to work with and for the team, not how to control the team and you’ll find that you truly begin to lead the team.

Cheers!

kick it on DotNetKicks.com

Technorati Tags: Leadership,Schedule,Project,Motivation,Motivate,Software,Developer

del.icio.us Tags: Leadership,Schedule,Project,Motivation,Motivate,Software,Developer

KISS, DRY, SOC, YAGNI, TDD…

These are things to take to heart.  If you aren’t thinking, acting, and implementing based on these you WILL have issues.  It will then lead to pulling your hair out (which I’ve already done), fussing, maybe screaming, being temperamental, getting bored, getting frustrated, and generally pushing one self to BURN OUT!  Nobody wants that!  So read up on these Wikipedia articles (yeah, these are concrete unlike the not so useful parts of Wikipedia, so I don’t wanna hear any lip about it)

Some things, that yes against the will of many, I argue that you do NOT want to waste your time with these.

Enough of my linkfest to good design ideas and practices, get on with it…

Technorati Tags: KISS,DRY,SOC,YAGNI,TDD,BDUF,antipattern

del.icio.us Tags: KISS,DRY,SOC,YAGNI,TDD,BDUF,antipattern