software requirements blog post