I had a realization today that most of my work as a programmer is done through copy and paste.
If there isn't another piece of code that has similar functionality, then I could probably find something on Google or StackOverflow. This is how I've always done it, and I am pretty good at doing that.
I'm also used to thinking that the source code is the true reference that we should go by. If there's no documentation, at least there's the source code that we can fall back on as long as you have the time to go through it.
But now I'm working on an early-stage project that truly embraces the creative destruction that comes from agile development, resulting in the code being suspect the majority of the time. The ACTUAL true reference then becomes the implied behavior (in our team's collective mind) of what the source code is SUPPOSED to do. And that picture changes dramatically from week to week as requirements change.
So instead of looking at reference code and figuring out how I can modify it to fit my needs, I have to do the opposite and figure out why the code is not able to produce what we want, determine how and why it is lagging the bigger picture, and work around that, refactoring that existing code if it gets in my way.
While this is an improvement, it takes some serious brain power (and courage) for larger scale problems. I think I discovered the line that separates an intermediate from a senior developer.
Have an opinion? Comment below.
Just kidding, YOU CAN'T!