by Michael S. Kaplan, published on 2005/03/23 10:23 -05:00, original URI: http://blogs.msdn.com/b/michkap/archive/2005/03/23/400982.aspx
Several years ago, I was dating a writer (she wrote fiction). Although it seemed like we would have nothing in at all in common, it turned out we had a lot, strangely enough. She was explaining to me once (embarrassed) about how sometimes in the middle of a book she would have to get up in the middle of the night because her character was "whispering in her ear" and helping her understand some point in the plot that she has to listen to and get down on paper. I laughed and talked about how the same thing would happen to me with code, where sometimes in the middle of the night I would actually have found some bug and had to look at it then to fix it.
She laughed too, because before that she never would have thought about development as an "artistic" expression. Frankly I wouldn't have, either. But we both realized that there were many aspects of software development that spoke more to being an artisan than an engineer, which are really two sides of the same coin anyway. There is the creativity, there is something akin to writer's block, there is that middle of the night thing that I hear most developers do not have and I would not mind shedding :-) , and so on.
A geeky sort of artist, to be sure. But an art of sorts....
Anyway, I was going to talk about respect.
Now Microsoft is a culture where you have to be able to stand your ground and believe in what you do. But generally I recognize who the smart ones are and I respect them for those things, just as those others will respect me for the things I know. So it is not a competition for anyone to be better than anyone else, but a recognition of differing skill sets and a diversity of approaches.
It does not always work this way, but it generally does in every group that I have ever enjoyed working in.
Yesterday I was in a meeting about a feature that needed to be costed so it could be triaged. I had previously come out in support of a less ambitiuous form of the feature because I was concerned about the impact to test (as were the testers!), but as presented (orally, there was no spec to cost) the feature gave me serious concerns about the performance and the scalability given our architecture, objections that I pointed out in the meeting. But rather than taking that as a data point and moving on, the program manager started to argue against the concerns, and although he gave the disclaimer that he was not a developer, he proceeded to ignore the dangers of late re-architecture plans and went so far as to suggest that perhaps a creative developer would be able to come up with a solution that would avoid these problems.
I found myself pretty freaking offended.
I finally interupted one of these trains of thought because I was going to have to leave the room otherwise. At which point someone else chided me for interupting. I felt like pointing out it was either that or leave or kick a hole in the wall (something that other developer types around here are famous for when they are frustrated!), or maybe told him since he had such a wondedrful understanding, perhaps he could write the damn feature himself (and test it, since he also minimized the test impact).
As it was, I did none of that. I simply pointed out that to cost a spec is needed. Without that, I could not proceed. Test chimed in at that point and said more about what they would need in such a spec (which makes me really glad I took that approach!).
This was frankly not the first time I had the feeling that this was his opinion of my work, but it was the first time it was so explicitly stated.
Today I am wondering about what to do next.
Prior to this I did respect him and if he had a fault it was that he had that "blue sky, head in the clouds" thing going on where I would prefer him stay anchored to the ground so we could ship something. And I think that a supportive PM is a crucial part of the development process, but I definitely am not seeing a supportive PM here. And I can't respect someone who would so openly and publicly disrespect me. When a PM does not feel the developer can get it done, they are actually a liability as a team.
So it seems like the conversations today may have to be along the lines of how to not be working on this feature. And if it comes to it, how to not even be working on this team.
I am not going to blame him as clearly he has negative opinions about me and probably has a very different opinion of how the day went for him. But as a team I think it would be a dismal failure. And I would rather involve myself in tasks that do not feel like swimming long distances carrying huge weights. Its just much nicer to enjoy coming to work in the morning....
Sorry to inflict all this on you. I'll post something interesting from a technical standpoint a little later....
If you are tempted to comment then consider yourself warned that I am not going to let very much through on this one. :-)
This post brought to you by ME because I can at times be quite a character.
# poli on 24 Mar 2005 5:39 AM:
# Michael Kaplan on 24 Mar 2005 7:58 AM:
go to newer or older post, or back to index or month or day