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?