@Keppla
So, basically you are saying, that the results (failing or succeeding) do not count (…even if you happen to be right), but only that the team agrees?
No, I don’t say that. What I am saying is that sometimes you don’t need to have a perfect solution in order to succeed.
It is better to reach a decision that lets the team move forward than to waste a lot of hours arguing technicalities. So you stop arguing, for the team’s sake.
Neither me nor Wayne said anything about how much arguing there was. In my case, from my side, mostly very little. I see no reason to fight for something which is not my opinion
but a widley accepted fact*, moreso if there are no counterarguments, just denying.
I have no problem following the teams way if it moves forward, but often enough, bad decisions are not bad because they move the project forward to slowly, but move it backwards.
It is as easy to destroy a project by moving fast enough in the wrong direction as it is by not moving at all.
In the very rare case where 1) a team of professionals are total idiots who are going to fail totally unless they listen to you
and 2) they refuse to listen to you, then you should still stop arguing and just quit. For your own sake.
no, that is the scary thing. they do not have to be complete idiots. in fact, they each had very strong abilities. But the team as a whole (not just the IT, btw) was
misguided, because they lived in their own little team world.
Thats why i am so oppsed to the kick the bad apple-approach: because i have seen how easy perception is fooled in a group.
The examples I gave were just examples from Joels article but I still want to respond:
Source control: You use source control because it is effortless and it will save your ass one day. It takes no time at all.
You underestimate the second best approach. It’s not that the ones who wont use SC will use all their data in a big crash one day, because they archive them manually.
Sure, its a waste of time, but you do not stop their use of time by your source control.
thats why i say that it saves no time: not as in a whiny it makes no sense, sniff, but as in the amount of time saved is -7 minutes per week.
It doesnt hurt, but its mainly for the ego.
Specs: You write specs because you yourself will want to know what it is you are supposed to do, verify it and make sure it makes sense before you go ahead.
You also want to verify your code against it later.
You can also show a spec to the PHB and ask him is this what the program should do? and be sure that the pogram is doing just that.
To make notes of what to do and having a basic plan before is not what i would call writing specs. Anyone does that.
I would only call it specs if they get some authority, and it makes sense to archive them, even if the authority is just the yes, thats what it should do from the stakeholder.
If the answer is either i already told you what it should do or something like a cointoss (go in a second time and you might get a different answer) it degrades to notes.
And when pulled out to explain a behaviour, it was seen as blaming or bad excuse, which gets you even more the bad apple look.
So effectivly, it did more harm than use.
Documentation: You write documentation so that the users know how to use your program, saving you from tons of support calls
and also giving the impression that the application is being maintained by someone who cares.
Your doumentation work has ultimately to pay of in higher user satisfaction and less work via support.
If you do not have the authority to pass it to the customers, this is not given. It even assumes, that you do not get in troubles for doing work not assigned to you.
Please note, except for the SC-thing i speak out of experience, i did not shun this approach in the first place. It just proved to not work, if you are really a grunt.
The trick is to stay positive and do the best you can, instead of finding reasons or excuses to NOT do the best you can.
it is irrelevant if you do your best, if your best if its still not enough, the world doesnt care if its you who is doing it.
The result is what counts, so check if it can be done good enough.
no, the trick is to do what can be done, and if some solutions are impossible, search for alternate solutions ways to solve the problem, instead of trying yourself to death. Think outside the box.
The solution to the problems with my old work was not giving the best but giving nothing at all anymore, as in quitting.
As a pessimist, i do enough questioning so that i can rephrase the question how to get things done as a grunt is wrong, and the first bullet point of the answer to the
real question how to get things done is fight beeing a grunt.
The difference between pessimistic slacker and honest critisism is that the honest critisism will offer an alternative action, not just empty opposition.
So, (a little bit ironic) if someone suggests shooting each teammember in the foot, you should suggest the small finger instead,
because if you just oppose to shooting anything, you are beeing pessimistic?
Let’s do this other thing! instead of What for?
Remeber that this other thing has to gain enough money on the long run to pay the time you work on it.
So, if you do not ask what for, you never face the sometimes cruel answer for to less gain. Just in the end one big our main customer jumped. we’re broke.
Again: what for is a constructive question (if it can be answered, you got the solution), just one noone seems to like.
based on the examples you gave, is in my opinion: [you are a] Pessimistic slacker.
i got used to the label pessimist (even if it turns out that mostly i was a realist), but what makes you think that i am a slacker?
If we’re at labeling, i give you the label kill the messenger. But relax, it’s an comfortable label. Much more comfortable than the messenger label
*) as in a Project consisting of hundred of files of 500+ lines of legacy-PHP, without a separation between model/controller/view, with many behaviour-redundant objects
needs refactoring. Or as in There is no way to let the system display the correct invoices if they are provided wrong by the deliverers
**) again, nothing i inventend myself. even in this blog there is a post about it