Geeks With Blogs

News INETA Community Speakers Program WTFNext's hosting!

View Stacy Vicknair's profile on LinkedIn

WTF Next? Dev ramblings from a master of nothing.

I work on a two programmer team for a federal credit union. I’ve been here for six months now, and I’d like to explain the problems that I have with working here to you guys.

Limited design experience. I have two years professional programming experience, and I’m finding road blocks when I try to learn more from the “Lead” programmer. For me, programming is a passion and something I want to know more and more about. For him, programming was a means to a job that he doesn’t want to get more out of. He landed the lead position by default, the previous lead quit and he was the only programmer left until I came.

As a result, his experience with design in his four to five years as a programmer has still been limited to less than five projects. There is no clear life cycle or methodology to his design.

In my case, I’m in the same position, but trapped. I cannot learn from him, I cannot see real case scenarios of how to expertly design a system because the legacy code is in VB6 and does not follow a good object oriented design. Does anyone know of a good resource that will help me understand software design / architecture? I really want to design the next project in a way that reflects smart programming.

No source control. Period. We don’t have any source control at all, other than the fact that we don’t work concurrently on projects. I bet the vast majority of you just either (a) had a moment of panic or (b) felt pity for how doomed I am.

Does a two man team not need source control? My thoughts would be that yes, we need source control and we need it before we find out how much we need it.

I’ve been looking into Subversion to see if I can start to grasp how it’s implemented and how I can test it out at home. OpenSim uses subversioning, but just because I know how to retrieve code from a repository doesn’t mean I understand how the process works, how it will help me, and the added stress that could result from it.

so for those of you with more years and better experiences, what is a good book / online resource for learning proper software design? And furthermore, what SCM do you use, would you recommend it, and what would you rather use?

Posted on Monday, October 6, 2008 1:21 PM VB .NET , Personal , Subjective | Back to top

Comments on this post: At what level is Source Control Management unnecessary?

# re: At what level is Source Control Management unnecessary?
Requesting Gravatar...
I'll pick the cherries first here, then get to the hard stuff. First, a team of *1* needs source control. If your lead won't buy into it, take the initiative and step around him to his boss and sell him on the risks that no VCS brings to the team, the project and the company. Make sure to emphasis the risk for code loss and the costs associated with redoing lost work. Sell him on the economies of scale that can be found by enabling 2+ developers to work on the same codebase at the same time.

If you want to implement something from scratch, I'd suggested going SVN through the VisualSVN route. Quite literally you'll have your SVN server up and running in about 5 minutes. Take that and enhance it with TortoiseSVN to make your Update, Add Commit life a breeze. Great thing, both are free! Now some people are going to poo-poo me here for my next statement, but remember, the best tool for the job. In the case of a VB6 shop SVN will work, but **IF** your team hasn't run source control at all in their lives, you'll probably want to think about Visual Source Safe too. It sucks, let's be honest, but it is a tool that you can learn with. If you have confidence in the ability for you and your teammate to learn, skip it though and go straight to SVN.

The Pragmatic Programmer series has a good book on SVN. Another place to look for information on the "how" portion of using source control is Jeremy Miller's blog on Look for his posts on the "Check-in Dance". They're the ones you'll really want to wrap your head around.

Having dealt with this numerous times in the past, now included, the hardest thing to read is that your teammate's lack of professional motivation is depressing. You have to watch that the passion void doesn't become contagious. The fact that he's like that will make it exceedingly difficult to learn anything useful from him. He just won't have progressed his knowledge enough to have a backlog of pertinent info to pass on.

One of the statements that I live and die by is "Don't let your job work you into irrelevance". Don't let them work you into a dying technology so that you're no longer marketable. Don't let them stop you from practicing the best techniques in your trade. If they won't change to let you do either of those, then it's time for a change. I know the economy is a scary thing right now, but if you feel that you're not going to get anything from this job (other than xx months/years on your resume), start looking for somewhere else to work. If you have 1/2 the skill that you show in passion and initiative, you should have little problem catching onto a team that will help you to grow.

Hope that helps and best of luck. Feel free to shoot me an email if you have any questions.
Left by Donald Belcham on Oct 06, 2008 8:46 PM

# re: At what level is Source Control Management unnecessary?
Requesting Gravatar...
First of all having access to source control is non-negotiable. It is good that you have an idea where things need improving but is sound like the "lead" is not interested. You can stay there but you won't build your skill set. Really the only thing you can do is to do it the way the "lead" wants and start making a plan to get out of there. The lead will be there long after you are gone. I call those people fixtures because they aren't going anywhere. It will not get better, he/she wants things to stay the same. I don't want to sound negative but you will regret not being immersed in object oriented design, test driven development and agile development. I have worked on a team of two before and it is like an unpleasant arranged marriage. If you are not careful you will really start to resent the lead. It is best to just plan you escape. In the meantime keep yourself up to date by learning new skills, taking classes or studying for a certification. You may have to ride this one out since the economy is struggling but get out you must.
Left by technodrone on Oct 06, 2008 11:29 PM

# re: At what level is Source Control Management unnecessary?
Requesting Gravatar...
@Donald: I was looking at VisualSVN and thought that it wasn't free. I'm looking again and now I see that the server edition IS free. I'll say I've worked with TortoiseSVN, but that's to the extent of retrieving from an SVN, not sending back. This is the route I'm going to try personally at home, and see how manageable it would be at work. Thanks for the resources on SVN, I'll be looking them all over and hopefully convincing someone of their implementation.

@technodrone: The lead is indifferent mostly, I brought up source control, and he has even used it at a previous position (something that I lack experience with). We have an additional problem that trying to load projects over a network connection is preventing compiling, so source control would offer a very cheap solution to this as well.

Other than all of this, I'm currently going back to school (first time was for EE, this time for IT: software Engr) and also studying for the .NET Frameworks 2.0 exam. I'm also looking over code complete 2nd edition which has helped me immensely even though I'm only 1/8th in. I hope to look over the GOF Design Patterns book as well.

I'll have to look into the pragprog series.
Left by Stacy Vicknair on Oct 07, 2008 9:01 AM

Your comment:
 (will show your gravatar)

Copyright © Stacy Vicknair | Powered by: