I am a problem-solver. That is how I identify more so than as a software developer. I develop software to solve a problem. If the problem is better solved by a change in process than that is what I recommend. And I learn best by having a real scenario, i.e. problem, to work through. And its the working through aspect of my problem-solving that is my strength.
For me working through is not a straight line. I work more like an artist or craftsman than a scientist or engineer. My process is kind of like going in ever shrinking circles around the problem. Along the way I discover new problems and end up making other such loops. But give me time and I do very much arrive at the center, and what for me at least is my solution.
Along the way I identify other previously unknown problems. Those problems also now get solved if necessary, or at least identified and minimized. I also learn much more about the source of the problem, again sometimes leading to better solutions. And my solutions end up being simpler as a result. And I’m always proud of the fact that I have almost zero bugs!
But I work in corporate America. My managers usually expect an estimate for my work. And they often assume they already understand the problem. Sometimes they even believe they know the solution! I can build an argument that my style ends up saving time and money and frustrations in the long run, and I really do believe that. But that is easier said than done.
Some problems really are simple and straight-forward of course. Those are typically so small that they are easy to estimate and complete. Or they get assigned to the more “junior” developers that work more like engineers. Its the bigger or more challenging problems that tend to get assigned to “senior” developers like myself. And those by definition are not textbook.
So the first thing I’m tasked with is an estimate usually. And that is not something I can do perfectly. Then I am tasked with creating a design. That basically means a description of how I’m going to solve the problem. But my style is that I discover that design as I solve the problem. So all I can say up-front is general approaches. This works for some managers, but not for others.
Along the way I often want to ask questions to better understand. Some managers understand the need for that already. I’ve also seen some come to very much appreciate it after working with me a while. But some do not like questions – afterall they already assume they understand it all and have already told me what to do. This is when I get frustrated and want to quit.
The point of this post is that this is true for me in everyday life too! I tend to focus on one thing at a time, and it may look like its the wrong thing. I may ask lots of weird questions, and seem to ignore suggestions. It may look like I don’t care, or I appear to be non-committal. But stick with me and you won’t be disappointed – and “smack” me when I do really need it!
And of course I likewise need to realize the same about others. In both my work and in my everyday life. We all have differences in how we approach life and our daily tasks. We may seem to be in conflict at times with others, when we are just doing things differently. We should be patient and look at the results – and their character. Let’s give each other the right to be different.