|
Yeah, it's quite terrible that people really do work like that.
Too bad they can't treat their dev like a craft.
|
|
|
|
|
A quote from a former colleague:
"Stop finding bugs, that's the clients (= user) job"
And yes she was serious, and no that wasn't even my worst experience dealing with her.
Tom
|
|
|
|
|
Yeah, it's a sickness.
A person like that really shouldn't be a dev...well, really isn't a dev.
|
|
|
|
|
You should not have ask her out.
I do not fear of failure. I fear of giving up out of frustration.
|
|
|
|
|
I've worked with people like that, but I've also worked with people who were specifically hired as testers.
What I've seen is that the arrogant kind of dev you're talking about (and they exist just about everywhere) tends to be a lot more careful -- and involved! -- when they know that there is someone who will be confirming that everything works OK.
I know that the next comment my annoy some people here, but this is somewhere where Agile works exceedingly well. The morning stand-up ritual builds really good connections between devs and testers.
I wanna be a eunuchs developer! Pass me a bread knife!
|
|
|
|
|
I can actually see what you mean in the case of (true) Agile, because in that case the hand-off from dev to QA should be so tight that it is as if the hand-off were simply the one person who played the role as dev would now put on her QA hat and do the tests. In that case you would be right and that is really how it should work and that is again directly tied to ownership.
But, i assure you, long ago when that dev said that to me, it was entirely because testing was beneath him. Great conversation here though.
|
|
|
|
|
We're set up here now with SonarQube hooked into the CI system so if test coverage on new code is below 80% the change is automatically rejected (and it does reject changes).
We still get people saying "I don't understand why I need to test", which I hear as "I don't understand why I need to write higher quality code and catch issues earlier when they can be fixed more rapidly and where it's cheaper to do so".
I find that if you can set up a system to show unit tests being run, coverage information and actions being taken when issues are found then there tends to be more corporate buy-in. We had a senior manager here who wanted screens up so he could see the information each time he walked by the different teams.
Eagles may soar, but weasels don't get sucked into jet engines
|
|
|
|
|
I must be so freakin' old. It would never occur to me to give someone something attributable to me without making sure it works.
I've wasted so much time. If there's a problem then someone would probably tell me if it were really important. So much time wasted.
Ravings en masse^ |
---|
"The difference between genius and stupidity is that genius has its limits." - Albert Einstein | "If you are searching for perfection in others, then you seek disappointment. If you are seek perfection in yourself, then you will find failure." - Balboos HaGadol Mar 2010 |
|
|
|
|
|
W∴ Balboos wrote: It would never occur to me to give someone something attributable to me without making sure it works.
That's exactly how I feel about it. It was literally like listening to a crazy person when he said he hadn't even shot one element of data through the thing. Crazy!
And, you're not old, you have a fine attention to The Craft of Software Development.
(Also, I'm old too.)
|
|
|
|
|
If for nothing else, I find unit tests the quickest way to debug new features and check they actually work. Far quicker than manually clicking through UI controls until you get to your new feature / bug fix.
Although I have worked with devs who pass on to QA without even running through the code themselves . .
|
|
|
|
|
Absolutely! Great comment.
Griping about unit tests and/or just not doing them is akin to griping about Source Control.
If you don't understand how much value Source Control brings as a developer and you only see it as overhead, then you probably don't really understand a lot about real dev. Source Control is annoying at times, but it saves so much work. Same thing for unit tests.
|
|
|
|
|
I've only been in the trade for 4 years so perhaps that is before my time. I can't even imagine working without source control. That includes personal projects, but particularly for collaboration.
What is the alternative to source control when working as a team? Emailing code around? Store on network drive? Word of mouth? Passenger pigeon? Reminds me of the time I received a printed XML in the post..
|
|
|
|
|
Sometimes it's better that the original developer doesn't write the (automated) tests.
Sometimes all that means is that the developers misconception of the requirements gets written twice.
OTOH, a test script that runs through all the expected interactions is useful, and yes, the basic test data for those interactions.
That said, most place I've worked don't have dedicated testers - just user acceptance testers.
|
|
|
|
|
AndrewDavie wrote: just user acceptance testers.
That's a good way to look at this and it sparked a thought in me.
User Acceptance testers can decide whether the software meets the user requirements and bascially fulfills the outward contract. So the testing could determine that the software is 100% correct.
However, without unit tests the design underneath could be so terrible that as soon as the customer wants to add an "easy change" the design may be so brittle that everything falls apart. So unit tests and other tests can/may indicate where the design is broken or bad and those kinds of tests would never be found by acceptance testers.
Good comment. Made me think.
|
|
|
|
|
Sure, programmers should do some unit and module testing.
But too often, programmers test their software when used the way it is supposed to be used. It is not like the "five year old test": Place a five year old by the keyboard and tell him "You just do what you want to do, and you'll have another ice cream cone every time you make the program crash".
Real testing must be done by "misbehaved" testers. People who are paid by the number of bugs they find, not by the number of code lines they write. 30 years ago, before software testing was an established discipline, we used student summer interns: If they stayed with us for more than half a year, they learned the programmer's way of thinking, using the software the intended way, and the number of bugs detected gradually. Every summer we got a new group of students, unfamiliar with the software, and the detected bugs count rose sharply.
Nowadays, we have a separate testing team - full time, but then: They are educated in the discipline of testing. Their profession is to identify corner cases, defining stress testing, managing bugs databases (programmer solution: add a comment in the code: "To do: Fix this bug when time allows" ), and rating the severeness of the bugs, making sure that the all the serious bugs are really fixed before the product is released.
Besides: Their job is to bark at the programmers when bugs are found that should never have been made at all. Programmers don't like to be barked at. So they do proper unit and module tests just as much to quiet down the testers as to satisfy the customers
I think the t-shirt I am wearing today is somehow related to my own program/bug-writing experience - it says "Experience - the ability to recognize a mistake when you repeat it". That certainly describes my experience when my code goes to the testers.
|
|
|
|
|
Great comments. I agree. There are definitely different types of testers and testing. as a matter of fact, the book I mentioned also touches upon these and how they are all different and should be considered.
|
|
|
|
|
I also find that if you want to make testable code, stay as "functional" in your programming as much as possible.
Anecdote:
I recently had to rework a monolithic module. The final result was 4 independent modules (separation of concerns) that were pure functional (inputs, outputs, no side effects) which generated almost the same information, but it was a lot easier to test/debug/capture intermediate results/replay/prove/etc.
The functional/separated modules actually were a lot cleaner and faster (less iterations) since one data structure in the old monolithic was split into separate,focused structures in the new modules.
After the refactor was complete, then the new requirements were added with clearly observable/diff-able results in outputs of the affected modules.
|
|
|
|
|
Excellent commentary. My primary customer makes a lot of different industrial machines. One of the primary engineering tasks is testability - how do we know this thing actually works? Keeps the electrical and mechanical engineers busy.
No reason why the same principles could not be applied to the software.
Charlie Gilley
<italic>Stuck in a dysfunctional matrix from which I must escape...
"Where liberty dwells, there is my country." B. Franklin, 1783
“They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
|
|
|
|
|
Need a review when you're done.
In 35 years, I've not yet worked in a shop that actually had deliberate testing. Sure, as the developer, you do (at least it's what I hold myself to) have a resp. to see that the code does basically what it's supposed to do. We only joke about "it compiled and linked, should be good".
Charlie Gilley
<italic>Stuck in a dysfunctional matrix from which I must escape...
"Where liberty dwells, there is my country." B. Franklin, 1783
“They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
|
|
|
|
|
Me: can you provide instructions on how to test your code?
Current Co-worker: I can't think in that kind of mind set.
Me:
co-worker also refuses to answer most emails - they don't want to be pinned to a paper trail. It really sucks on so many levels.
|
|
|
|
|
umjaco69 wrote: Current Co-worker: I can't think in that kind of mind set.
Riiiiiiiiight. S/he can't think in that mindest. Whatevs!! Doesn't want to think, more like.
|
|
|
|
|
The next two words out of Dev's Boss' mouth should be: 1) "You're" and 2) should start with a "f" and end with an "ed".
|
|
|
|
|
Right on!!
|
|
|
|
|
Gives you a whole new perspective on driverless car software huh?
Speed: 60 kph
Terrain: mountain road on a bridge over a chasm
Altitude: 2000 meters above sea level
Forward Sensors: 5 workers on the road 10 meters ahead
Reverse Sensors: tractor trailer approaching at 65 kph 20 meters back
Plow into the workers (5 killed)?
Veer off the bridge? (1 killed: passenger)?
Things that make you go hmmmmmm.
Cheers,
Mike Fidler
"I intend to live forever - so far, so good." Steven Wright
"I almost had a psychic girlfriend but she left me before we met." Also Steven Wright
"I'm addicted to placebos. I could quit, but it wouldn't matter." Steven Wright yet again.
|
|
|
|
|
An interesting perspective.
|
|
|
|