As developers, we are constantly pitched on trading our work for equity in the next Facebook killer. Over the past few years, I have been approached by countless people proffering NDAs in exchange for the privilege to develop their idea for free, with promises of billionaire status in the near future.
Effective stakeholder / developer communications is vital to a successful relationship. Using a tool like Cucumber can actually help greatly by getting everyone on the same page.
Most web applications we work on require storing data in a database. Like many Rails shops our default database of choice at Grok is Postgres. We can store the vast majority of data using its text types, numeric types, dates and times, and booleans. Postgres also provides support for collections with arrays and hstore as well as more specific types like UUIDs and IP addresses, allowing us to store that data in a more structured way instead of as text.
Ruby provides a rich set of value objects for things like IP addresses, Dates, Strings, Hashes, Arrays, etc. When working with data in our applications we can usually start with one of the types that Ruby gives us. This helps us get started very quickly but it can get out of hand as requirements change. Just about every application needs data in a particular format, like an email address or a list of investments.