When we rebuild something, we take the problem, deconstruct it to it’s bare bones and fix it with what we have.
When we rebuy something, we identify the problem, build some requirements and hope the purchase of a solution will fix our problem.
Rebuilding involves understanding the problem from beginning to end and investing yourself into design, development and deployment of the solution.
Rebuying involves less effort being spent on development and hopefully more on the actual implementation.
Good developers know that when they rebuild, they are learning, developing and growing.
Great developers know when they need to make the hard call between rebuilding and rebuying something different, something new, something they hope will fix their problem – not being sure – but willing to give it their best shot to get there.