Everyone should know now that KISS is Keep It Simple Stupid, but basically I was working away on a project at work and what we needed was a graphical line chart that displayed the growth based on user input, to give them some visual feedback of the curve they were entering.
I started very complexly using Stack and LinkedList, making my own methods to validate and add and remove segments so that the whole thing would work cohesively, and then it was pointed out to me that we didn’t really need to take into account both ends of each segment, we might as well just treat it as the next segment takes its start from the last.
So I simplified my objects all the way back to a simple list and a validator on submit – but that left how was I going to do the graphing?
It’s in a winforms .NET application, so I thought maybe there was a graphing library, or I could use lines and the drawing primatives, but I needed some values on the axis and all that.
Anyway, had a quick think and came up with the ReportViewer control! We already use Reporting Services for a lot of our reporting and the users are familiar with that, but I’d never done it with an in-memory set of data, using the local version.
Half an hour later I had a spiked test version done and ready for smoothly bringing it back into the main project. Seriously, I had visions of such complexity, for something that could resolve itself so easily, and the boss had no qualms about using that control in the production application.
Sometimes you just need to take a step back and stop banging your head on the desk long enough for the ideas to come through to you – and remember to keep things as simple as possible and they’ll often work.