- Feature Articles
- CodeSOD
- Error'd
- Forums
-
Other Articles
- Random Article
- Other Series
- Alex's Soapbox
- Announcements
- Best of…
- Best of Email
- Best of the Sidebar
- Bring Your Own Code
- Coded Smorgasbord
- Mandatory Fun Day
- Off Topic
- Representative Line
- News Roundup
- Editor's Soapbox
- Software on the Rocks
- Souvenir Potpourri
- Sponsor Post
- Tales from the Interview
- The Daily WTF: Live
- Virtudyne
Admin
Sure, he just shrugs at Merv, as he's obviously not to blame for what went wrong. A good manager would hide his anger and possible other emotions from the employees that don't have anything to do with it, as evaluating Joe's performance is a personal affair.
Even being emotional towards Joe would probably not be very effective. Just make a decision and take action. Be clear about your motivation and your expectations, help the employee to do better and give people a chance to learn and better their ways. If that doesn't help, it's time to go talk to HR.
Admin
They can be forced to. The logic would go that the dev environment should always be the latest in the repo so they can be properly tested and since nothing on the dev server should ever be edited we want to just overwrite so we have a clean environment.
I some cases I've seen that done intentinally as a LART.
Admin
Another newb here:
I must confess the idea of a 'build server' or an 'integration server' is not clear to me, having never worked in a firm that utilized these (I set up version control in my present firm).
How relevant are these for non-.Net platforms, like PHP, for example? Also, where would be a good place to learn about best practices for deployment/development? Please don't suggest "a Bachelors degree in IT/Comp. Sci", or "Google". My BSc in IT degree taught nothing relevant, and Googling is what I'm about to do - pointers would just be welcome. :)
Admin
In the places I have worked : Build server. A place the application is built that is not a developers local machine. Used to check we have all the dependencies documented and we can build from source control. Stops the problem of builds working on a developers machine and not in production if a resource has not been checked in. Best to have something like cruise control doing regular builds to it so problems appear as soon after a commit as possible.
Integration server. As close to the production environment as possible with real data / TIBCO layers what ever is appropriate rather than a local stubbed set up for testing. Usually appropriate if you are dealing with complex 3rd party systems.
Admin
Imagine having a test web server to check and see how it all looks and works before going live.
Admin
You want a pointer? How about 0x1A66BFD4 ?
Admin
Where did I say "don't take a backup"? You didn't mention testing the update on an off-line server before putting it live either, but this too is normal practice and I don't assume you're advising against it.
In the part of my post that you cut I said that IF (and you and I agree that that is a very big "if") one is otherwise satisfied that source control can deliver files into a production environment then...
Admin
There were Joes like that in every place that I worked.
Any long-lived project has nearly all the developers working on a rather small portion of the code. Much of the code is old, and has hardly been touched for several years. With the high churn of developers, you've got lots of code that nobody's looked at since before most of the devs in the company came aboard.
That's where the Joes come in. They've been there since forever, so they've seen all these obscure pieces of code. If something needs updating in one of those places, they can hit the ground running. Another dev would take days to get to know the old code and figure out how it works. That's what makes the Joes of the world valuable to the companies and their managers. Ideally, these Joes also train the newcomers, but I can't see this particular Joe doing it.
Hey, I've been with my company for almost 8 years. I'm a Joe!
Admin
Admin
I was on a one-man team for quite a while, and I've used source control since day one. If for nothing else, it lets you try different approaches (branches) without breaking shipping version, and lets you document the work done.
Admin
I actually wondered if somebody would make this joke :)
Admin
should have given him 0xBAADF00D
Admin
Until a few months ago, I worked with a "developer" who regularly edited live code. She wasn't very keen on testing either, so mistakes were found by other team members or clients. It was an absolutely nerve-wracking way to work.
Admin
Yes, a test or staging server is something I always use - is that the same as a build/integration server? The usual sequence is Development/Test/Production.
All the projects I've worked on were simple enough to work well without requiring a build server. But I see the value of it, and will definitely learn more about it, and start integrating it into my process.
I remember the time (a few years ago), when I first tried to start with a revision control system (SVN) - before that I had been using automated backups. There was a period when the whole exercise of version control seemed pointless and convuluted. Now, I wouldn't get out of bed without doing a commit!
P.S. Speaking of which, the latest version of TortoiseSVN seems to have a few bugs. Hmm...
Admin
Admin
Admin
Only if they were checked in in the first place.
Since Joe didn't use source control, there was no previous version checked in with the changes he'd spent two weeks making.
Admin
And as far as backups go...
I know that in my shop, we back up the SVN repositories daily. We back up a ton of stuff, actually. One of the few things that we absolutely do not back up is the automated extracted-source directory on our build server, which is where it seems that Joe was making his changes. So yeah, he probably lost two weeks of code.
Admin
Backing up before you click the button would have been the intelligent thing to do.
When you've worked in the industry for a while you'll realise it's not so cut and dry and that some people need a little help.
Relying on tools to do your thinking for you is a little naive.
Admin
"Costed" - now that's TRWTF!
Admin
Well now you're just sending him to memory his app doesn't have access to. Sneaky sneaky hacker...
Admin
In my last place of work i was introduced to svn (previously only used sourcesafe). The problem was it seemed to keep losing its history.
one day it would have a history of the recent changes the next - nothing
this became a big issue when i relised that not only was the history disapearing but so were changes that I and other developers were making, it got to a stage where I was going to bin svn and buy a copy of sourcesafe.
Then an incident where one of the other developer was caught making obscene comments in his code (well we found the comment and svn tracked him as the source) well as soon as this was mentioned the history disapeared, sure enough the developer had a admin login and was deleting the svn directory and copying his local one in its place.
seems that he had been doing this for a while to hide some right wtfs in his code.
so even source control is not proof against dubious programers
(needless to say he had the admin rights removed pdq)
Admin
Admin
There has to be something better than what you're doing right now.
Meanwhile, look up the four minute Subversion course and practise. It'll put you in the top 20% of US programmers, as far as I can see.
(ANd yes, it is useful for single-person projects. It's saved my ass a lot more times than I can tell you.)
Admin
Poor IT practises are the problem here, not source code.
Admin
Sometimes, doing the other half of source control helps too. Like setting the privs on the live checked out files to be untouchable.
Admin
Is there anything more boring than writing internal, business software?
http://www.joelonsoftware.com/articles/FiveWorlds.html
Admin
I can't image how this could even happen. At least with Subversion or CVS, it's impossible to edit source directly in the repository in a straightforward way. You have to check out a local copy to work on, so how can a commit damage something?
Admin
Alex,
Where do you find these hilarious images??
[image]I'm going to use the image from this article in all my new applications when there's an error!
P.S. Long time reader, love the site; keep up the good work!
Admin
The manager probably knew they could get Joe's work back from a backup and has probably been waiting for an excuse to tell Joe to be a team player.
Admin
The fingers start trembling and hit the button twice. It's sad to become old.
Admin
I am always amazed at how many developers don't know how to use version control... it should be one of the first things they are taught in school or by peers.
Now there is a WTF.
Admin
Very true :( I think the Source Control HOWTO is a good resource for those who are new to source control:
Admin
Of course, what these companies should be doing is looking for a small local software house and buying a proper, bespoke software development. Unfortunately, a lot of the small local software companies are a) cowboys, b) incompetent, or c) Magpies, and the software they produce is little better than the stuff churned out by the self-taught project team. In business, it really sucks to have unusual software requirements...
Admin
as a cc admin, I'm not sure how the file is lost if there is a version control system..
~shrug~
Admin
How is it possible to lose 2 weeks of work? At worst it should only be that days work since the overnight backups ran. That would the the WTF for me!
I currently have 3 tiers of backups... one is a local copy on my own machine, two is a copy on the dev server which is backed up nightly, and thirdly all of that is going in and out of a source-control system which is also backed up nightly. Actually, we also have shadow-copying enabled on the servers so that would be a fourth copy.
I come across this kind of half-arsed source-control use all the time, so before I push anything to the live server I do a file comparison. If I have hundreds of files to update then I will simply make a backup of the live version before doing anything.
A few ex-employees used to make changes to the live DB's all the time without making any backups first... suffice to say they didn't last very long when they brought the client DB to a screeching halt for an entire day.
I live by the phrases "If in doubt, back it up" and "back it up, just in case". This has saved my skin more times than I can remember.
Admin
Ah! This is too cool. We the follow the same tradition here, at our company. Some groups have a zip file that needs to be extracted before build, so that the necessary files are overwritten appropriately.
In one instance, a preprocessor was used to generate the source which generates the executables, and someone modified the source (not the code to be preprocessed). So, during the code review, I was matter-of-factly informed that I need to pull in their modifications (to the intermediate code). I have successfully passed on the tradition of source control control.
Admin
Linus used Patches and tarballs as a primitive source control system, because, for him, it was easier to merge everyone's changes that way, and if you look at how git works it is essentially the same work flow, just automated and full of awesome.
I wouldn't want to use patches and tarballs, but I've never been trying to merge changes from thousands of developers.
I can see why he didn't use CVS or SVN, they are incapable of supporting the development model that the kernel uses, a distributed version control system CAN, but for a long time there weren't any that were ready for production.
Admin
git would have prevented this, every commit has an SHA1 hash, and everyone has complete copy of the history, so it is only possible to change the history if you can break SHA1. Linus did it that way on purpose.
Admin
WRONG proper source control has no need for file locking.
Admin
WRONG you can edit a CVS repo directly, although it's a REALLY BAD IDEA, it can be done, if you know enough about CVS. The repo is human readable (after a fashion...)
Admin
Why should the manager be mad ?
"Joe" has already been warned. Perhaps this will be a way to get rid of Joe once and for and not be open to any law suits ?
"I'm sorry, but Joe continuously fails to follow our departments procedures. So for this reason we have to let him go."
Admin
Does nobody take backups of development environments these days?
Admin
So in addition to not using source control this guy didn't ever back up his work?
I don't understand how someone that stupid manages to be employed ... except possibly in management or politics.
Admin
The meaning of "is."