I would consider myself first and foremost a great thinker and have a love of solving problems. Especially story problems. I also lament in the complexity of the problem and enjoy the process of simplification.
So...as a software developer I have found we fall into 3 general groups.
1. The code is the ends.
2. The solution is the ends.
3. The paycheck is the ends.
For me I am number 2. and for sure anti-3. as I have made a career choices that many wonder about...and thats because happiness and being around other that are like me 2. is my primary motivation.
As a 2. I am constantly mystified by 1's. It seems as through they could care less about the business value and end result as long as they get an opportunity to code something wild, crazy and new.
I see the value in new coding models, frameworks and such only when they add value to getting me to the solution in a "better" fashion. I also include the aspect of technological overhead, complexity and discover-ability for my fellow software developers.
Having been a coder in some form or fashion for more than 20 years there is nothing more frustrating than something coded so poorly, deeply nested and using a proprietary "framework" so to speak that the intent and discover-ability of the code is very difficult to reach.
Example: The Night Mare Project...
I am working on a project with a friend and co-worker of mine and he is the likes of a 1. however our relationship has shown him over time that my 2. nature is very valuable and together we strike a nice balance.
We are trying to make sense out of a BizTalk 2004 Solution that no one at my company has touched because they cant get their head around the complexity of the beast.
Once we figured out the "port" binding nature of the orchestrations (aka Orchs ) and how this directs what Orchs pick up from a MSMQ we drilled into the Orchs itself. Once into the Orchestration there are code snippets that use a whole host of Legacy Libraries. This is all in VS 2003 understand you... One of the script componets calls a function in an assembly. Now this assembly is a generic wrapper around 10-15 different remoting endpoints. These endpoints are stored in the registry ( remember that thing...the registry ). So we followed this function call which makes a remoting call. We find the endpoint and this function...guess what? This function makes another remoting call to another function. So we are about 2 hrs into this mess just trying to find the exit point where this thing writes to a database. Well the remoting call then dumps a message into another MSMQ which is picked up by another Orch and the process starts all over again...still dont know where this thing exits.
Now we know why no one has touched this code in 8 years. My pair programming partner said his brain was mush and my eyes had dried out from staring at the screen.
So, before you code something, think, think, and think again about your intent, discoverability and all the nasty things people are going to say about you after you have left the company.
Happy Programming...
Qui Jon
So...as a software developer I have found we fall into 3 general groups.
1. The code is the ends.
2. The solution is the ends.
3. The paycheck is the ends.
For me I am number 2. and for sure anti-3. as I have made a career choices that many wonder about...and thats because happiness and being around other that are like me 2. is my primary motivation.
As a 2. I am constantly mystified by 1's. It seems as through they could care less about the business value and end result as long as they get an opportunity to code something wild, crazy and new.
I see the value in new coding models, frameworks and such only when they add value to getting me to the solution in a "better" fashion. I also include the aspect of technological overhead, complexity and discover-ability for my fellow software developers.
Having been a coder in some form or fashion for more than 20 years there is nothing more frustrating than something coded so poorly, deeply nested and using a proprietary "framework" so to speak that the intent and discover-ability of the code is very difficult to reach.
Example: The Night Mare Project...
I am working on a project with a friend and co-worker of mine and he is the likes of a 1. however our relationship has shown him over time that my 2. nature is very valuable and together we strike a nice balance.
We are trying to make sense out of a BizTalk 2004 Solution that no one at my company has touched because they cant get their head around the complexity of the beast.
Once we figured out the "port" binding nature of the orchestrations (aka Orchs ) and how this directs what Orchs pick up from a MSMQ we drilled into the Orchs itself. Once into the Orchestration there are code snippets that use a whole host of Legacy Libraries. This is all in VS 2003 understand you... One of the script componets calls a function in an assembly. Now this assembly is a generic wrapper around 10-15 different remoting endpoints. These endpoints are stored in the registry ( remember that thing...the registry ). So we followed this function call which makes a remoting call. We find the endpoint and this function...guess what? This function makes another remoting call to another function. So we are about 2 hrs into this mess just trying to find the exit point where this thing writes to a database. Well the remoting call then dumps a message into another MSMQ which is picked up by another Orch and the process starts all over again...still dont know where this thing exits.
Now we know why no one has touched this code in 8 years. My pair programming partner said his brain was mush and my eyes had dried out from staring at the screen.
So, before you code something, think, think, and think again about your intent, discoverability and all the nasty things people are going to say about you after you have left the company.
Happy Programming...
Qui Jon
0 comments:
Post a Comment