“I could answer that but I won't.â€
Background: DDOM are a sister project, based in a university. We use software they supply. They have said in the past "There are no requirements", so there is a major culture clash between us. In fact, their head wrote to my head suggesting that I should be removed as project manager of my project.
Here are some aspects of a recent meeting with them.
Steve said "I seem to have lost this discussion, I won't say any more." Is software development a competitive sport?
He challenged our API for constraints. He thinks that metadata about constraints and executable methods should go in different packages.
We have implemented our API, but a more stable implementation could be generated by them. I wasn't asking them to do this, because Steve has been objecting to this API since summer 2004.
I asked why he cares. We want something, and we have it, and he doesn't think we are well advised. So what? He answered "I could answer that but I won't." I had the sense that an answer would have been offensive.
I said "Why not provide it just be to nice?" It seemed that this appeal was bizarre to him. Satisfying the users of his software isn't high up on his list of goals.
He did later state a goal: he felt that providing the interface we use would be a future maintenance problem. In particular, it's a design pattern that is a problem in the other languages they support. He may be right – my Python isn't good enough to judge.
His colleague Xavier said that he would provide it. Steve said that he would delete from their repository any code that Xavier checked in to do this. Xavier said that he would provide it for Java only. At that point, they agreed.
Later, Steve approached me for more discussion on this point. I said that it seems to be a difference between Java idioms and Python idioms – but actually I think it's a difference between getting and not getting OO. I didn't say that, or not in so many words. I did suggest he looks at java.lang.reflect.
The key problem here for me is the lack of customer focus. He wants to get the software "right", not "right for the actual needs". The question of whether his judgments are sound is less important. This is similar to the tension I feel with Lenor, within my own project.
Questions for the future:
How to avoid hiring people like Steve?
How to create an environment where they don't behave like that?
Names have been changed.
Steve
See my post "Night Thoughts on Evil Steve".
Not quite understanding the details...
But then again, I don't think I need to. The overall point is clear: you're experiencing good old fashioned office feudalism at it's finest! Been there, done that. Nothing like a healthy dose of politics to completely derail a project.
Read Yourdon's "Death March" -- quickly!


Comment - “I could answer that but I won't.â€
//The key problem here for me is the lack of customer focus. He wants to get the software “rightâ€, not “right for the actual needsâ€. The question of whether his judgments are sound is less important. This is similar to the tension I feel with Lenor, within my own project.//
The DEV team is there to build software that is to be used by the end users. If designing a "right" software is not going to satisfy the needs of the end user, then what’s the point of development?
That aside, here the argument seems to be whether the design is maintainable. If I use a software that is commercially available and then write my own code to extend it to my needs - am I going to deviate from the established design patterns? If so, then definitely the software vendor will wash their hands on my design. I can understand Steve’s behavior from this point of view.