|
Reminds me of some work I did during the Y2K fiasco. I spent months working on some really old code to make it Y2K compliant. Then on January 1, 2000, everything ran smoothly! -- not a single problem. I practically broke my arm patting myself on the back. A couple of months later on February 29, 2000, everything crashed. You see, the year 2000 was a leap year, but the year 1900 was not. My conversion of 1900 dates to 2000 dates did not take that into account. Epic fail. Fortunately, I had already collected my contract fees.
-NP
Never underestimate the creativity of the end-user.
|
|
|
|
|
Ooh, painful.
Did you feel guilty enough to fix it for them even though your contract was over?
|
|
|
|
|
Well, it kinda fixed itself...about midnight on that day as I recall.
I must not have made too bad of impression as I eventually received another contract to upgrade all of their software to use C# front-ends and SQL server back-ends, so the whole date thing was never an issue after that day.
-NP
Never underestimate the creativity of the end-user.
|
|
|
|
|
Both.
It isn't exactly hidden that people use different formats across the world - even some Americans are aware of it. It's not exactly difficult to work with different formats these days either.
And are you saying that it took less that twelve days to develop the software? Or that you didn't test your own code at all for three weeks of each month?
It's a rookie mistake, for both developer and the tester - it doesn't bode well for the long term reliabilty of the software from where I'm sitting.
Ideological Purity is no substitute for being able to stick your thumb down a pipe to stop the water
|
|
|
|
|
it was just a plugin in existing software.
And yes its a very silly mistake by me(hope my boss will not see tht), but as long as i can pass responsibility to tester why i care
|
|
|
|
|
And this is exactly where a lot of stuff goes wrong...
kdgupta87 wrote: it was just a ...
and
kdgupta87 wrote: but as long as i can pass responsibility to tester why i care
Take what you do seriously, and take the responsibilty for what you do.
Those smily icons aside, with a mentality like yours you wouldn't last long if you were ever to work with me...
|
|
|
|
|
Ideological Purity is no substitute for being able to stick your thumb down a pipe to stop the water
|
|
|
|
|
certainly u are right, i should more careful and serious next time, i know for sure that this way i cant last long, i am in learning phase still now .
|
|
|
|
|
As long as you keep learning, it will turn out alright
|
|
|
|
|
I have to agree with cptKoala - take responsibility for your mistakes. If nothing else, you may want your tester on your side, rather than against you. If you blame him for your mistakes, you won't makes friends there...
Ideological Purity is no substitute for being able to stick your thumb down a pipe to stop the water
|
|
|
|
|
absolutely right, A friendly tester makes ur life easy
|
|
|
|
|
Shame on tester if the software requirement/design requirement mentioned the format of the date. Shame on you if it didn't. If your tester doesn't have an up to date requirement specification/design document he's not to blame, but you are.
It's pointless having a tester if you don't give him something to test the software against. Sure, he might find some bugs but he'll miss most.
"Program testing can be used to show the presence of bugs, but never to show their absence."
<< please vote!! >>
|
|
|
|
|
yes, its my fault, my user-case spec was weak, i will remember ur advice in future
|
|
|
|
|
Well obviously its your fault! Testers are not there to test for programmer errors, they are there for testing whether or not the system meets the specification. And if you think you can get away with blaming the testers for your own lack of care and commitment, then you are horrendously wrong. Whenever writing date related code I always make sure I unit test for formats because the system can be used in any locale, I don't see how its the tester's fault. Its just common sense and its about sense of ownership for your work.
|
|
|
|
|
|
I don't want to be mean, but,
If I did that then
I would shame me
End If
Testers never know what is really happening, however, they do find weird things sometimes. The best testers are the end users as they are so weird and inventive that they do things that no one would or almost could ever test for.
Look at it this way, you most likely will never make this mistake again. We have all done something like this at some time. So just learn and grow.
Maybe you should have started your project on the 1st of April instead of the 2nd. Then you could have blamed the tester.
|
|
|
|
|
Reminds me of why i started using parameters for Dates and Decimal values in SQL.
LONG LIVE PARAMETERS
Paulo Gomes
Over and Out
|
|
|
|
|
|
Like a few others have stated.
I prefer yyyy-mm-dd.
Another advantage is that it sorts correctly as a string.
|
|
|
|
|
That sounds like exactly the sort of bug which would be preempted by a good set of unit tests.
Test Driven Development takes some time to get used to doing, but it definitely works.
Anna
Tech Blog | Visual Lint
"Why would anyone prefer to wield a weapon that takes both hands at once, when they could use a lighter (and obviously superior) weapon that allows you to wield multiple ones at a time, and thus supports multi-paradigm carnage?"
|
|
|
|
|
Shame on you, and your tester too.
We should follow the system when using date and time. The display format is only for presentation. If your code is going to send data all over the world, what is the right format?
|
|
|
|
|
Eugene Peng wrote: what is the right format? For an established receiver of data, the right format is the receiver's format.
Shame on the receiver if they didn't supply the format to begin with.
Testers exist because it is a known problem that coders write bugs. It is the tester's responsibility to assume the programmer screwed up and find out where (s)he did.
The fact the test period was only one day puts nearly all the fault at the tester's feet. (s)he didn't even have time to build a valid case model for testing.
You as a coder have a right to slap your own head, say "What an idiot", and fix the bug.
Reminds me of a bug I created. Wrote an app to clean up a table by truncating it when it is a week old. Supposed to run 5 minutes before midnight. So I scheduled it to do so. Forgot the date was UTC. Should have scheduled the job to run at 3:55 PM and coded the logic to sleep until the UTC time was reached. (UTC is 7 to 8 hours ahead of my local time.)
The tester caught it on my last day of work. Over a year later, I'm reading proposed changes another group was making. My former group. They were adjusting job schedules to be based on UTC time and offsetting the start time based the former time setting because the app was moving to a different time zone.
I had to explain to the head SQL person there is a bug written against the app, he needed to set the UTC time to run at 22:55 UTC instead of 07:55 UTC, it will run 5 minutes to 2 hours early depending on when the scheduling job code runs and the code needs to be modified to wait until 5 minutes before UTC Midnight to run.
Everyone makes mistakes. Checking for valid date information being passed is 101 testing. (It is the programmer's job to do 101 testing as well as the tester's job to not believe (s)he did anything right.)
|
|
|
|
|
First shame on you. When transfer any data over the wire, you should it do it in a system independent format. When for some reason it is impossible to do that, you should take system differences in account. That is: verify what differences there are and (unit)test you're code against the whole valid range and handle invalid data.
Shame on the tester to, he also should be aware of difficulties in the domain he is testing.
But most of all shame on you. A developer never can hide behind the the tester (or even the architect). He has it's own responsibility to make the software work, without errors.
modified 7-May-12 12:55pm.
|
|
|
|
|
My vote is for the tester. You're a programmer, you're expected to screw up.
The tester passed your code in one day. You might have 100 more bugs lurking in your code. (Which could still be true after 100 days of testing.)
Just think about sending yy-mm-dd, your code could still be humming along fine for 19 years. (I'm guessing someone might eventually notice the dates don't match/make sense.)
|
|
|
|
|
Function SetDate(ByVal nYear As Long, ByVal nMonth As Long, ByVal nDay As Long, ByVal nHour As Long, ByVal nMinute As Long, ByVal nSecond As Long) As Date
Dim dTemp2 As New Date(nYear, nMonth, nDay, nHour, nMinute, nSecond)
Return dTemp2
End Function
really?
This is probably one of the best things this guy has done so far. I was advised not to put his code on this forum though. This one I just couldn't help.
If it moves, compile it
|
|
|
|