Brownfield vs. Greenfield (Part 2)
Posted by Charlie Recksieck
aka Existing Code vs. Starting Over
* * *
We would like to conclude with a little practical advice about these critical brown vs green decisions:
* Be Honest - Take a pragmatic look at the issues. Do you have enough money? What really is the current state of your existing software? Do you trust your programming team? Your management team? Most of all, don't fudge decisions and view things through the fantasy lens of "if everything goes right ..." If you get a $30k bid and a $5k bid on the same project - do you want to leap at the low bidder right away, or should you consider why the other company is saying $30k.
* Bring In A Consultant - This is the prime area where third-party consultants can be worth their weight in gold. They shouldn't really have a dog in the hunt, and they shouldn't be telling you what they think you want to hear. Consultants are paid to render an opinion. (I would be remiss if I didn't mention that we are available to consult on a project.) Also, us mentioning "consultant" doesn't mean that this always must be a large consulting or software firm. Do you have a brother-in-law or old college roommate who's in software? Take them to lunch or call them to describe what you're hearing from a potential developer, and they can tell you what their Spidey-senses are telling them.
* Listen To Your Clients - Make sure you're not wasting valuable resources on a flashy, pie-in-the-sky solution to a problem that doesn't exist. We've been brought in on two software products that are bloated and overbuilt. If your clients don't care about a feature, why should you? (Maybe you do anyway for various reasons, but at least ask yourself the question.)
* Buy Vs. Build? - Are you sure you know what's available on the market? Let's say your new project is adding an e-Commerce section to your website for the first time - you are surely aware of various places that can give you simple plug-ins. For whatever it is, make sure you do your due diligence to see what's out there for a cheap, easier solution.
* Triage - Prioritize your next several new projects. Get a timeline together and think them through, discuss them with your team. Perhaps one improvement makes more sense right now than an even more important new feature later.
* Work In Bite-Size Chunks - Unless a complete, green field overhaul needs to happen, break up your brown field work into simpler, smaller parts. Phase 1 going smoothly is always a great way to go into Phase 2.
Good luck, everybody!