I'm a relatively new Programmer (2 months) at a relatively small company. I've been tasked with coming up with a solution to a problem we've had, and I've thought of two ways to tackle it.
Option A is a pretty average solution. There's really nothing that special to it, but it gets the job done.
Option B also gets the job done, but it's far more clever. It's a little faster, and it only works because it takes advantage of a few ways our system is set up. The problem is we'd have to make a small change to get option B to work (one I'm not allowed to make on my own).
Since I'm new, the problem I'm approaching isn't very significant in the grand scheme of things, so there's honestly not a huge benefit to using B over A. The change we'd need to make is also pretty insignificant, but since no solution here really saves the company too much time/resources, it's probably not worth making the change. It makes more sense to do option A.
However, if I just did A, then I'd report back to my boss "the problem's solved, I did blah blah blah..." and I don't think his perception of me would change at all. Which isn't bad, necessarily, but also isn't really good.
I know for a fact that if I approached him and asked "I've come up with two options to solve the problem, A and B. B's better, but we'd have to change the whatever," he'd say to just do A. But I feel like it gives me an opportunity to flex my "brain muscles" a little, and to also show that I'm picking up on details in the way our system's set up. It is showing off a little, but I don't think it's obviously showing off, and honestly, I don't know that showing off to your boss a tad is strictly a bad thing. Especially for newer employees where people are still trying to get a feel for what you know.
Is it worth asking about B even though I know my boss'll say "no"?
As a more general question: Is it worth proposing a solution you know will be shot down if it demonstrates things you know (or have learned)?
hit by a bus
scenario. As long as it is a fair standard pattern that just requires a few changes (and maybe a little knowledge) it’s worth looking into. If we all just wrote the easiest to read and maintain code all of our code would suck and we would never get better (Just think of a team that’s still using .Net 2.0 without LINQ because extension methods and queries in code arescary
.)