I was stopped at a red light as I driving home from work last night and saw a bricklayer working. He was laying the first brick on what appeared to be the beginning of a very large retaining wall. As I was driving away, the thought occurred to me that the first brick has to be the most important, for the entire wall will be built incorrectly if that first brick is askew. It also occurred to me that this also applies to system development of any size or complexity.
You start with your idea of a grand, new system, but you don't start out building that new system. You instead plan and consider what direction you want to take your system. How large, how many customers, continuous availability, the list can grow according to your desires.
In bricklaying, just like in software development, you start with the plan to build the best brick wall ever seen, but you don't just start building a wall. Instead, you must begin with the very first brick. That first brick is what will make your entire brick wall successful. Place that brick at an angle and everything following it will be angled until either you realize your mistake or until it topples. A poorly designed software package will eventually topple, too, if not carefully considered and planned - no matter if you are using agile or waterfall methods.
There are many that believe one can just start whipping code together and figure it out as you go. Sure, you can do that. Anyone is capable of that. It is those that stop to ponder how they really want their system to behave and respond to customers that will have the successful software experience; whether their business idea is a good one is not relavant. We can learn and apply many things that are outside our domain by just stopping and considering how other's approach problems.
So, what have you learned from others outside your domain that have helped you in your business?