Often the challenges of designing something simple or complex are fairly straight-forward. What is often not straightforward are the customers needs and wants. The challenges surrounding this process have given way to lots of tools to pull out the real needs and wants but ultimately as a Systems Engineer you need to know when to "dig some more" when presented with a statement/requirement from the customer. I am not 100% certain that this gut feeling of needing to dig is something that can be taught but some of the warning signs can fit into patterns.
I want to hit one today.
"The system must perform [some function] in [some amount of time]."
First of all we all probably see that this statement is not written as a shall statement. We will all notice this and seek to fix it. However, much like a patrolling police officer notices a missing tail light and discovers someone driving without insurance we need to investigate any time shalls are put together with odd wording. Most people do not write particularly well. The thought is clear in their mind but it simply doesn't make it onto paper or its true intent is assumed to be understood. That assumption is what we are trying to avoid.
Anytime you get a requirement with a time hack on it you need to ask some probative questions. The first thing you should do is define the start moment and end moment. You are simply looking to define the task that needs to be accomplished. Often during this bounding you will stumble upon a poorly outlined task or an assumption about how the design will be implemented. You want to avoid numbers that assume design.
A design requirement is bad. A requirement that assumes design and impacts other requirements in a broad fashion with something like a time interval is potentially going to insert lots of complexity into your design for no reason.
Lets say the task is "raising a platform" you must ask the question. Why the time requirement? What drives the need for that platform to raise in a certain amount of time? At this point you should also make sure you have a requirement for height. You may find that the requirement is based on a timeline you are not aware of or a function that needs to happen during this process. Whatever the base reason is, it will likely reveal functionality or design that was assumed or understood from the customer that is likely not captured in your requirements.
So now that you understand the bounded task you may understand also why it is timed. If you manage to nail both those things down the requirement may be able to stand on its own. However it leads me into a few more questions.
Is it our intent to test this performance? Or is this simply a portion of a larger time requirement.
If its part of a larger time requirement you will want to budget this requirement. It may in fact be that the rest of the system will not eat up enough of the higher level time requirement and that this particular function could perform on a longer timeline and not impact overall performance. This discovery could potentially lead to tradeoffs in hardware or software that could potentially reduce the constraints on the system as a whole and lead your team to cost saving discoveries.
Its important to ask questions even when the requirement seems very straight forward. It can eliminate scope creep in the future as you discover what the real intent of the requirement was far too late in the game and the issue eats into budget. Bounding the requirement and asking the reasons behind a requirement often will lead to a better understanding of your customer and possibly a lower cost/complexity solution even if it means a few more requirements.