Source control: mandatory or not
-
My assertion was that it's not mandatory and is in fact harmful for a small shop with just a few programmers (3 or less). A lot of this stuff has been foisted on to programmers by corporate types who are trying to turn software development into a factory process like stamping out microwave ovens. That's fine if you work in a factory but I have a small shop and we are craftsmen not assembly line workers and nearly any modern software development methodology that is the buzzword of the day simply makes no sense in a smaller craftsman software development shop. I reject agile development, I reject source control, I reject gannt charts, I reject UML diagramming, I reject a lot of things because any sane, logical examination shows them to be unnecessary overcomplication for my situation. Those are all tools to deal with mashing together a large number of programmers and trying to make them act as one entity. That's fine for what it's designed for but far too often I see people asking here about these things for their one man projects and shops and we all have to be careful to realize that one size does not in fact fit all and everyone's perspective is based on their situation that they are in. You simply can not say with any degree of accuracy that source control is always mandatory. I've been *extremely* sucessful doing what I do the way I do it and my perspective is always from the point of view of a craftsman not a cubicle jockey (not that there's anything wrong with that ;) ). If every poster here could have some sort of icon that represents the situation they are in, size of shop, type of software etc then discussions would be much more productive because you could look and balance someone's assertion with their situation and judge it appropriately.
Never trust machinery more complicated than a knife and fork. - Jubal Harshaw in Stranger in a Strange Land
John Cardinal wrote:
assertion
This was a release posting so your assertion was removed.... :-)
Why is common sense not common? Never argue with an idiot. They will drag you down to their level where they are an expert. Sometimes it takes a lot of work to be lazy The people in the lounge said I should google for the answer to a programming question but I do not know what search engine to use
-
John Cardinal wrote:
I've never had to do that in decades of programming
Geez, I do that all the time. Do you ever use the Undo feature of your editor? What happens if you want to undo a change and the IDE doesn't allow you to undo it (for whatever reason: you had closed the file, the undo buffer got filled, the IDE crashed, etc.)?
Man is a marvelous curiosity ... he thinks he is the Creator's pet ... he even believes the Creator loves him; has a passion for him; sits up nights to admire him; yes and watch over him and keep him out of trouble. He prays to him and thinks He listens. Isn't it a quaint idea. - Mark Twain
Really? I've been programming since the days of DOS I'm so careful at this point after all these years I make an insurance adjuster look like a hollywood stunt man. :)
Never trust machinery more complicated than a knife and fork. - Jubal Harshaw in Stranger in a Strange Land
-
Following this discussion[^] with Mr Cardinal, it seems there are very contrasted opinions on the subject. What do CPians think about it? Mandatory when your job is producing code or not?
When I used to work as an employee, my first question in the interview would always be, "do you use source control". The majority of places would answer no, or even worse "no, we haven't figured out how" or worse yet "some of us do, others don't". I use source control for several reasons, in order: 1. to make it easier to load the code on different systems, including my client's 2. as a remote backup facility 3. to coordinate work with multiple people (almost never an issue because I'm usually the only developer, but with this recent contract, that will be changing) 4. to compare changes 5. to retrieve a previous version (I've never had to do this, actually, but it's nice that it's there as an option) So yes, even as a sole developer, I think it's mandatory. If you work in a team, I would run as fast as possible if any company nowadays doesn't use source control. Marc
-
John Cardinal wrote:
Seriously I don't fear it or anything and I've never had a use for it and never tried it I'm only going by what I see passing across these boards monthly about VSS and others problems and the hassles of using it and my own needs which are much smaller.
The problems are miniscule compared to the advantages, especially when you have more than one employee. With one employee you have the advantage of instant recall on your history. You can diff/compare to any verson you have checked in, and if you check in every working copy, even desk copies, it is actually easier to track down regression issues than doing so by hand. But with a tri-merge on a modern source control system, even two developers show additional advantages. We've come a long way from RCS and VSS. Sure VSS is buggy, sure RCS was worse, but CVS was better, and Subversion better still. Oddly enough, you are still using a compiler. A compiler can cause you more issues than just coding all the assembly by hand. The reason we do not, is the advantages outweigh the disadvantages. You wll hear people complaining about their IDE, but most everyone has given up using Notepad even though Notepad is more stable. The reason is that the advantages FAR outweigh the disadvantages. Once you learn the tool the advantages are great. But I do understand your reasons, I have lived through RCS, VSS and CVS. I still carry an encrypted copy of my work home.
_________________________ Asu no koto o ieba, tenjo de nezumi ga warau. Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb)
Again, we are a very small shop and I couched all my statements within that frame of reference. I simply don't see an advantage for a shop with 3 or less people in it. We are all working on completely different areas / aspects of the project at the time there is zero chance another person is going to touch our own area of responsibility. I don't have any experience working with a large team of programmers and I'm always careful to scope what I say within that frame but sadly that seems to have gone unnoticed by most everyone. If a 1 man shop developer tells me they need a source control system I tell them they are full of shit and wasting time playing with tools that a simple batch file and archiver could more simply and easily acheive. At the end of the day I want to be writing code, not farting around with unnecessary steps. Perhaps working in a small shop that I am entirely responsible and paying for I have a clearer understanding of what's truly important and what is just dragging you down. We work on a razor's edge to be able to do the size of projects we do with the limited resources we have and that is the kind of situation that hones my processes over the years to a very fine point.
Never trust machinery more complicated than a knife and fork. - Jubal Harshaw in Stranger in a Strange Land
-
Following this discussion[^] with Mr Cardinal, it seems there are very contrasted opinions on the subject. What do CPians think about it? Mandatory when your job is producing code or not?
K(arl) wrote:
Mandatory
Abso-frickin-lutely - I don't give a rat's ass what size of team you're on - source control is vital. It gives you the freedom to change code in the knowledge that you have a position to recover to. And it's not just code. Why not documents as well?
-
Again, we are a very small shop and I couched all my statements within that frame of reference. I simply don't see an advantage for a shop with 3 or less people in it. We are all working on completely different areas / aspects of the project at the time there is zero chance another person is going to touch our own area of responsibility. I don't have any experience working with a large team of programmers and I'm always careful to scope what I say within that frame but sadly that seems to have gone unnoticed by most everyone. If a 1 man shop developer tells me they need a source control system I tell them they are full of shit and wasting time playing with tools that a simple batch file and archiver could more simply and easily acheive. At the end of the day I want to be writing code, not farting around with unnecessary steps. Perhaps working in a small shop that I am entirely responsible and paying for I have a clearer understanding of what's truly important and what is just dragging you down. We work on a razor's edge to be able to do the size of projects we do with the limited resources we have and that is the kind of situation that hones my processes over the years to a very fine point.
Never trust machinery more complicated than a knife and fork. - Jubal Harshaw in Stranger in a Strange Land
John Cardinal wrote:
If a 1 man shop developer tells me they need a source control system I tell them they are full of sh*t and wasting time playing with tools that a simple batch file and archiver could more simply and easily acheive.
That is because you cannot imagine a one man shop with 100,000 line programs. But mostly it is because you have you opinion, you will always have your opinion, and right or wrong you will be damn sure never to let anyone with source control near you so that you can never be proven wrong. John, notice I also couched my reply with the fact that I understood where you were coming from. But that doesn't make your statement true of all development teams in all areas any more than it makes it always true for you. You could write 10 lines a code a day and produce simple apps that do pretty much nothing. In which case I would agree 100%. But this is an issue of complexity. You don't want it, and like my ex-boss who believed ALL programs were the same. If one program takes 15 minutes to write then ALL programs should take 15 minutes to write. Your reply is similarly constructed. Assuming you really don't need source control, then anyone else who has a more complex system, say ... controlling air space over a mlitary instalation and remote controlling unmanned air craft worth 4 mill a pop, also doesn't need any more tools than you. I would say to you, grow up. Even assuming you don't need it. Which we will assume for the moment. That does not mean others do not have programming projects complex enough to utilize the regression issues I mentioned. You can live with the bugs, you can live with the smaller code-sets, others may not. Live and let live John. Let them have their tool, let them enjoy higher productivity than you, faster testing, debugging, sharing, backups, and branching, remerging for multiple customers and you can stick with zip files and one damn branch and you can tell your customers to stuff themselves if they ask for anything else. :) I work on a razor's edge to do what I do, alone. I have a team now, they are supporting the new version completely by themselves, while I support all the customers directly as I have in the past before they came along. The UAV's are still flying, the radars are stll tracking, and the code set makes Windows look small. But then I have the tools to manage it. You would never be able to grow that large, you admit it yourself, your limited resources of three could never achieve anyt
-
John Cardinal wrote:
If a 1 man shop developer tells me they need a source control system I tell them they are full of sh*t and wasting time playing with tools that a simple batch file and archiver could more simply and easily acheive.
That is because you cannot imagine a one man shop with 100,000 line programs. But mostly it is because you have you opinion, you will always have your opinion, and right or wrong you will be damn sure never to let anyone with source control near you so that you can never be proven wrong. John, notice I also couched my reply with the fact that I understood where you were coming from. But that doesn't make your statement true of all development teams in all areas any more than it makes it always true for you. You could write 10 lines a code a day and produce simple apps that do pretty much nothing. In which case I would agree 100%. But this is an issue of complexity. You don't want it, and like my ex-boss who believed ALL programs were the same. If one program takes 15 minutes to write then ALL programs should take 15 minutes to write. Your reply is similarly constructed. Assuming you really don't need source control, then anyone else who has a more complex system, say ... controlling air space over a mlitary instalation and remote controlling unmanned air craft worth 4 mill a pop, also doesn't need any more tools than you. I would say to you, grow up. Even assuming you don't need it. Which we will assume for the moment. That does not mean others do not have programming projects complex enough to utilize the regression issues I mentioned. You can live with the bugs, you can live with the smaller code-sets, others may not. Live and let live John. Let them have their tool, let them enjoy higher productivity than you, faster testing, debugging, sharing, backups, and branching, remerging for multiple customers and you can stick with zip files and one damn branch and you can tell your customers to stuff themselves if they ask for anything else. :) I work on a razor's edge to do what I do, alone. I have a team now, they are supporting the new version completely by themselves, while I support all the customers directly as I have in the past before they came along. The UAV's are still flying, the radars are stll tracking, and the code set makes Windows look small. But then I have the tools to manage it. You would never be able to grow that large, you admit it yourself, your limited resources of three could never achieve anyt
El Corazon wrote:
That is because you cannot imagine a one man shop with 100,000 line programs.
No I can't. I don't think anything but some of our in-house utilities is that small. Ahhh now you had to go and get all personal about it. :) I wasn't dissing you or anyone else, I just hate blind dogmatic thinking and I see more of it here than I see anywhere else when it comes to tools and methodology. I originally started out by stating that I thought source control was a waste of time and resources, dangerous and fragile and limited that to my own personal experience, needs, situation etc. I was flamed so heavily for uttering what seemed to many to be a heresy that I thought it was funny as I always do when I see programmers who are in an industry that is perhaps the most important to be flexible in your way of thinking being so dogmatic. So you see your entire statement above I agree with and was trying to illustrate but somehow you've flipped my argument on it's head. At least we're all getting a lot of finger excercise today! :)
Never trust machinery more complicated than a knife and fork. - Jubal Harshaw in Stranger in a Strange Land
-
Following this discussion[^] with Mr Cardinal, it seems there are very contrasted opinions on the subject. What do CPians think about it? Mandatory when your job is producing code or not?
If the program has more lines in it than you can memorize, use source control....
Why is common sense not common? Never argue with an idiot. They will drag you down to their level where they are an expert. Sometimes it takes a lot of work to be lazy The people in the lounge said I should google for the answer to a programming question but I do not know what search engine to use
-
El Corazon wrote:
That is because you cannot imagine a one man shop with 100,000 line programs.
No I can't. I don't think anything but some of our in-house utilities is that small. Ahhh now you had to go and get all personal about it. :) I wasn't dissing you or anyone else, I just hate blind dogmatic thinking and I see more of it here than I see anywhere else when it comes to tools and methodology. I originally started out by stating that I thought source control was a waste of time and resources, dangerous and fragile and limited that to my own personal experience, needs, situation etc. I was flamed so heavily for uttering what seemed to many to be a heresy that I thought it was funny as I always do when I see programmers who are in an industry that is perhaps the most important to be flexible in your way of thinking being so dogmatic. So you see your entire statement above I agree with and was trying to illustrate but somehow you've flipped my argument on it's head. At least we're all getting a lot of finger excercise today! :)
Never trust machinery more complicated than a knife and fork. - Jubal Harshaw in Stranger in a Strange Land
John Cardinal wrote:
At least we're all getting a lot of finger excercise today!
yup, but I still think even if you don't need it, there are some who do. I have to branch and merge for contract obligations. If I branch for MDA and lock their version until after the mission, I have to merge it back in, even if I have done work for the Air Force or FCS or DFCS in the mean time. Or worse, all three. One man shop can operate as a team of 10 for 10 customers. the Utah range is here this week too, loving the new stuff, but asking for more. That is life in the middle of no where. I do not believe it is a waste of resources, and our track record shows it is true. I have out distanced every other 3D competitor in the market including the big guns, and including my own parent companies Lockheed Martin and others. CSC brags about us because they had no such technology, now they do, and suddenly they are side by side with the largest names in 3D. The question is all about how you use it, and what cautions you take. I would never tell anyone to trust source control anymore than you would tell your employees to make one copy of their work (I hope). But I will use the source control as I do the compiler, profiler, and IDE. It is a tool, it has a purpose, and when used for the entire purpose, not just source backups, it far outdistances a simple backup. No more diffs and windiffs except for regression comparisons, or new bug serearchs. When you have a bug and 5 releases ago you did not for that some function. What have you changed. You pull out the disks, restore the backups to a new directory, start walking through the diffs. I pull up the history, diff-online, search for the error and usually find it before you could get the source backup restored. But it really is a difference in need. If I told the US military to stuff themselves because we can't change now to support someone else, I wouldn't have a job long. They say jump, you ask how high. The moon is coming in soon, right now I am trying for the fourth dimension. ;) But since it does come down to need, you may not need it, others will. leave it at that.
_________________________ Asu no koto o ieba, tenjo de nezumi ga warau. Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb)
-
Following this discussion[^] with Mr Cardinal, it seems there are very contrasted opinions on the subject. What do CPians think about it? Mandatory when your job is producing code or not?
Using a reliable code management system is clearly superior, but that doesn't automatically make it mandatory. I've worked in large teams that did, and large teams that, ummm... used their own "system" (:cough: bogus :cough:). Currently I'm a team of one and my current practice is to archive to a CD every Friday, which I'd consider a bare minimum. I don't feel like learning VSS, I've only ever heard bad things about it.
-
My assertion was that it's not mandatory and is in fact harmful for a small shop with just a few programmers (3 or less). A lot of this stuff has been foisted on to programmers by corporate types who are trying to turn software development into a factory process like stamping out microwave ovens. That's fine if you work in a factory but I have a small shop and we are craftsmen not assembly line workers and nearly any modern software development methodology that is the buzzword of the day simply makes no sense in a smaller craftsman software development shop. I reject agile development, I reject source control, I reject gannt charts, I reject UML diagramming, I reject a lot of things because any sane, logical examination shows them to be unnecessary overcomplication for my situation. Those are all tools to deal with mashing together a large number of programmers and trying to make them act as one entity. That's fine for what it's designed for but far too often I see people asking here about these things for their one man projects and shops and we all have to be careful to realize that one size does not in fact fit all and everyone's perspective is based on their situation that they are in. You simply can not say with any degree of accuracy that source control is always mandatory. I've been *extremely* sucessful doing what I do the way I do it and my perspective is always from the point of view of a craftsman not a cubicle jockey (not that there's anything wrong with that ;) ). If every poster here could have some sort of icon that represents the situation they are in, size of shop, type of software etc then discussions would be much more productive because you could look and balance someone's assertion with their situation and judge it appropriately.
Never trust machinery more complicated than a knife and fork. - Jubal Harshaw in Stranger in a Strange Land
Oh, shucks, i missed a good argument. :rolleyes:
John Cardinal wrote:
I've been *extremely* sucessful doing what I do the way I do it and my perspective is always from the point of view of a craftsman not a cubicle jockey
Sure. Source control - especially with the largely-inane clients available for most systems - is a lot of overhead. And whether that overhead is necessary does depend a lot on the skill and discipline of those involved. That said... while perhaps it's not accurate to deem it "mandatory", that just puts it in the same category as things like Intellisense, build systems (including makefiles) and IDEs, none of which are strictly required and all of which impose some sort of overhead. Those of us who use them do so because we've found them useful in reducing overhead in some other way - whether that's the manual effort involved in resolving build dependencies or in merging code changes. I worked for many, many years with my own set of scripts and procedures for managing change sets, even when source control was required. Only in the past few years have systems like Subversion proved themselves robust and convenient enough that i've been able to use them for day-to-day management of code changes. And i could still do without it... but i wouldn't want to. A useful tool is one that has a clear benefit to offer in exchange for its cost - for more and more of us, source control has become such a tool. Obviously, it hasn't reached that threshold for you yet. ;)
John Cardinal wrote:
If every poster here could have some sort of icon that represents the situation they are in, size of shop, type of software etc then discussions would be much more productive because you could look and balance someone's assertion with their situation and judge it appropriately.
Yeah, yeah. And if each post had a web-cam slideshow of the person as they wrote, sarcasm would be easier to detect. Maybe. :rolleyes:
every night, i kneel at the foot of my bed and thank the Great Overseeing Politicians for protecting my freedoms by reducing their number, as if they were deer in a state park. -- Chris Losinger, Online Poker Players?
-
Using a reliable code management system is clearly superior, but that doesn't automatically make it mandatory. I've worked in large teams that did, and large teams that, ummm... used their own "system" (:cough: bogus :cough:). Currently I'm a team of one and my current practice is to archive to a CD every Friday, which I'd consider a bare minimum. I don't feel like learning VSS, I've only ever heard bad things about it.
PIEBALDconsult wrote:
Using a reliable code management system is clearly superior, but that doesn't automatically make it mandatory.
Right there is the quintessential answer to the question of this thread. It can be a great tool, there are many reasons to use it, and few not to use it. But is it mandatory? After double checking with Webster, clearly mandatory is not the right word to describe it. I voted 5 for this one, but I'm sure that won't last long once the sheep come around here. Regards, BDF
-
John Cardinal wrote:
At least we're all getting a lot of finger excercise today!
yup, but I still think even if you don't need it, there are some who do. I have to branch and merge for contract obligations. If I branch for MDA and lock their version until after the mission, I have to merge it back in, even if I have done work for the Air Force or FCS or DFCS in the mean time. Or worse, all three. One man shop can operate as a team of 10 for 10 customers. the Utah range is here this week too, loving the new stuff, but asking for more. That is life in the middle of no where. I do not believe it is a waste of resources, and our track record shows it is true. I have out distanced every other 3D competitor in the market including the big guns, and including my own parent companies Lockheed Martin and others. CSC brags about us because they had no such technology, now they do, and suddenly they are side by side with the largest names in 3D. The question is all about how you use it, and what cautions you take. I would never tell anyone to trust source control anymore than you would tell your employees to make one copy of their work (I hope). But I will use the source control as I do the compiler, profiler, and IDE. It is a tool, it has a purpose, and when used for the entire purpose, not just source backups, it far outdistances a simple backup. No more diffs and windiffs except for regression comparisons, or new bug serearchs. When you have a bug and 5 releases ago you did not for that some function. What have you changed. You pull out the disks, restore the backups to a new directory, start walking through the diffs. I pull up the history, diff-online, search for the error and usually find it before you could get the source backup restored. But it really is a difference in need. If I told the US military to stuff themselves because we can't change now to support someone else, I wouldn't have a job long. They say jump, you ask how high. The moon is coming in soon, right now I am trying for the fourth dimension. ;) But since it does come down to need, you may not need it, others will. leave it at that.
_________________________ Asu no koto o ieba, tenjo de nezumi ga warau. Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb)
El Corazon wrote:
It is a tool, it has a purpose
Yup and you know me well enough to know by now I've said something similar a thousand times about other technology. Cmon, you just know I'm grinning away when I'm typing some of this stuff. ;)
Never trust machinery more complicated than a knife and fork. - Jubal Harshaw in Stranger in a Strange Land
-
Oh, shucks, i missed a good argument. :rolleyes:
John Cardinal wrote:
I've been *extremely* sucessful doing what I do the way I do it and my perspective is always from the point of view of a craftsman not a cubicle jockey
Sure. Source control - especially with the largely-inane clients available for most systems - is a lot of overhead. And whether that overhead is necessary does depend a lot on the skill and discipline of those involved. That said... while perhaps it's not accurate to deem it "mandatory", that just puts it in the same category as things like Intellisense, build systems (including makefiles) and IDEs, none of which are strictly required and all of which impose some sort of overhead. Those of us who use them do so because we've found them useful in reducing overhead in some other way - whether that's the manual effort involved in resolving build dependencies or in merging code changes. I worked for many, many years with my own set of scripts and procedures for managing change sets, even when source control was required. Only in the past few years have systems like Subversion proved themselves robust and convenient enough that i've been able to use them for day-to-day management of code changes. And i could still do without it... but i wouldn't want to. A useful tool is one that has a clear benefit to offer in exchange for its cost - for more and more of us, source control has become such a tool. Obviously, it hasn't reached that threshold for you yet. ;)
John Cardinal wrote:
If every poster here could have some sort of icon that represents the situation they are in, size of shop, type of software etc then discussions would be much more productive because you could look and balance someone's assertion with their situation and judge it appropriately.
Yeah, yeah. And if each post had a web-cam slideshow of the person as they wrote, sarcasm would be easier to detect. Maybe. :rolleyes:
every night, i kneel at the foot of my bed and thank the Great Overseeing Politicians for protecting my freedoms by reducing their number, as if they were deer in a state park. -- Chris Losinger, Online Poker Players?
Shog9 wrote:
sarcasm would be easier to detect
Maybe if we had a "dripping with sarcasm" message type icon.....
Why is common sense not common? Never argue with an idiot. They will drag you down to their level where they are an expert. Sometimes it takes a lot of work to be lazy The people in the lounge said I should google for the answer to a programming question but I do not know what search engine to use
-
El Corazon wrote:
It is a tool, it has a purpose
Yup and you know me well enough to know by now I've said something similar a thousand times about other technology. Cmon, you just know I'm grinning away when I'm typing some of this stuff. ;)
Never trust machinery more complicated than a knife and fork. - Jubal Harshaw in Stranger in a Strange Land
John Cardinal wrote:
Yup and you know me well enough to know by now I've said something similar a thousand times about other technology. Cmon, you just know I'm grinning away when I'm typing some of this stuff.
yup, and laughing at every 1 because you managed to get the room riled up to a fury pitch! Every place has a trouble maker. ;) John, when the Nurse slapped you to make you start breathing, I bet you slapped her right back or at very least vomitted something disgusting on her and smiled as big as you are right now. just be glad you don't need the branch merge, because without a source control, your customers would have you running powers of two times the work for every customer change. branch merge barely keeps it under control.
_________________________ Asu no koto o ieba, tenjo de nezumi ga warau. Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb)
-
John Cardinal wrote:
Yup and you know me well enough to know by now I've said something similar a thousand times about other technology. Cmon, you just know I'm grinning away when I'm typing some of this stuff.
yup, and laughing at every 1 because you managed to get the room riled up to a fury pitch! Every place has a trouble maker. ;) John, when the Nurse slapped you to make you start breathing, I bet you slapped her right back or at very least vomitted something disgusting on her and smiled as big as you are right now. just be glad you don't need the branch merge, because without a source control, your customers would have you running powers of two times the work for every customer change. branch merge barely keeps it under control.
_________________________ Asu no koto o ieba, tenjo de nezumi ga warau. Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb)
El Corazon wrote:
Every place has a trouble maker.
Hey I don't make trouble I just question assumptions. :)
El Corazon wrote:
just be glad you don't need the branch merge
I used to write custom software for different customers in the oil and gas and related industries and I know intimately the work required for that kind of stuff and it's precisely why we only make commercial software now and when anyone asks us if we can customize it for them we say sure for 500,000 dollars minimum we can look at doing that for you. :) The only way to make serious money in this business is to write once, sell as many times as possible.
Never trust machinery more complicated than a knife and fork. - Jubal Harshaw in Stranger in a Strange Land
-
My assertion was that it's not mandatory and is in fact harmful for a small shop with just a few programmers (3 or less). A lot of this stuff has been foisted on to programmers by corporate types who are trying to turn software development into a factory process like stamping out microwave ovens. That's fine if you work in a factory but I have a small shop and we are craftsmen not assembly line workers and nearly any modern software development methodology that is the buzzword of the day simply makes no sense in a smaller craftsman software development shop. I reject agile development, I reject source control, I reject gannt charts, I reject UML diagramming, I reject a lot of things because any sane, logical examination shows them to be unnecessary overcomplication for my situation. Those are all tools to deal with mashing together a large number of programmers and trying to make them act as one entity. That's fine for what it's designed for but far too often I see people asking here about these things for their one man projects and shops and we all have to be careful to realize that one size does not in fact fit all and everyone's perspective is based on their situation that they are in. You simply can not say with any degree of accuracy that source control is always mandatory. I've been *extremely* sucessful doing what I do the way I do it and my perspective is always from the point of view of a craftsman not a cubicle jockey (not that there's anything wrong with that ;) ). If every poster here could have some sort of icon that represents the situation they are in, size of shop, type of software etc then discussions would be much more productive because you could look and balance someone's assertion with their situation and judge it appropriately.
Never trust machinery more complicated than a knife and fork. - Jubal Harshaw in Stranger in a Strange Land
Hrmmm... While I don't agree that source control SOFTWARE is mandatory, some kind of source control PROCESS is, in my opinion. Without it, you cannot adequately manage multiple developers (even 2) working on the same project (unless they never touch each others code) and you're kind of screwed if you need to maintain multiple releases of the same software. Source control software comes in many flavors, from the simple to the insanely complex. It makes little sense to do this by hand when there is likely a tool out there that will fit whatever process you want to use. Having said that, I can't imagine how source control can be "harmful". Can you explain that?
-- Where are we going? And why am I in this handbasket?
-
Hrmmm... While I don't agree that source control SOFTWARE is mandatory, some kind of source control PROCESS is, in my opinion. Without it, you cannot adequately manage multiple developers (even 2) working on the same project (unless they never touch each others code) and you're kind of screwed if you need to maintain multiple releases of the same software. Source control software comes in many flavors, from the simple to the insanely complex. It makes little sense to do this by hand when there is likely a tool out there that will fit whatever process you want to use. Having said that, I can't imagine how source control can be "harmful". Can you explain that?
-- Where are we going? And why am I in this handbasket?
We never have more than one developer working on the same area of code at the same time, we do not maintain multiple releases as we make commercial "off the shelf software" and avoid multiple releases like the plague for many reasons chiefly you can go broke trying to please specific customers. Multiple releases go against everything that makes you money as a software company. Write *once* sell many times makes you money and ensures happy customers because of all the time and complexity saved that can be plowed directly into the single trunk project. We do have a source control process of a kind, I would never refer to it as that, more of a kick ass backup system consisting of nothing more than batch files, command line winzip, cd burner and zip tape drive with 10 tape *off site* rotation system. I can if I ever need to restore any one of 30 copies of active projects from any period within the last decade to as recently as the last time I got up from my computer during a work day, it's never been required but if it was I can do it. A source control system is dangerous in that your code is in a much more fragile place, you tend to start relying on it, there is a post here at minimum once a month about some source control software disaster or problem and it seems to take up a lot of developers time, time best spent writing code, not frigging around with tools that are completely unnecessary. Of course as I've said and will say again because some people are too thick apparently to get it (not you, others) I am speaking for my own situation with my own company only. What is appropriate for us may ver well not be appropriate for others so if anyone disagrees then I welcome them to set up an identical company, write identical software, do it for a decade sucessfully and come back and show me where my opinion is wrong. Sorry to rant but I've had to deal with a lot of narrow minded dogmatic people on this an other issues who can't seem to understand that in fact we aren't all dead eyed corporate cogs working in "campuses" sitting in cubicle farms all day in an assembly line software factory. :)
Never trust machinery more complicated than a knife and fork. - Jubal Harshaw in Stranger in a Strange Land
-
Following this discussion[^] with Mr Cardinal, it seems there are very contrasted opinions on the subject. What do CPians think about it? Mandatory when your job is producing code or not?
-
Following this discussion[^] with Mr Cardinal, it seems there are very contrasted opinions on the subject. What do CPians think about it? Mandatory when your job is producing code or not?
Some form of backup system seems like a wise move. Now, Source Control do have it's benefits but occasionally it can be overkill. In my case they just sits there and takes up space on the drives/servers -- I've needed to go back and check twice:-> in the last 25 years. Once was changes done more than three years ago (use check-in comment and labels), once was just a month or so old code but a massive amount of changes (took over a resource management system... written in VB6:omg:... No, I do not want to talk about it, the wounds are to fresh). Conclusion -- Mandatory (some form of...). You never know when it would have had been nice to have:-D