Building Dependable Apps: What You Should Know