<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div apple-content-edited="true" class=""><div class=""><br class=""></div></div><div><blockquote type="cite" class=""><div class="">On 18 Sep 2015, at 18:47, HADDLETON, Robert W (Bob) <<a href="mailto:bob.haddleton@alcatel-lucent.com" class="">bob.haddleton@alcatel-lucent.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class="">Hi Renat:<br class=""><br class="">[TL;DR] - maybe use multiple words in the state name to avoid confusion<br class=""><br class="">I agree that there is a lot of overlap - WAITING and DELAYED and POSTPONED are all very similar. The context is important when trying to decipher what the words means.<br class=""><br class="">I would normally interpret WAITING as having a known condition:<br class=""><br class="">* I'm WAITING for the baseball game to begin<br class=""><br class="">DELAYED implies WAITING but adds the context that something was supposed to have started already, or has already started, is now blocked by something out of your control, and you may or may not know when it will start again:<br class=""><br class="">* The (start of the) ballgame has been DELAYED (by rain) (until 2:00). (So I'm still WAITING for it to begin)<br class=""><br class="">POSTPONED implies DELAYED, but adds that something was "scheduled" to start at a certain time and has been re-scheduled for a later time. It may or may not have started already, and the later time may or may not be known:<br class=""><br class="">* The ballgame has been POSTPONED (because of rain) (until tomorrow) (so the game has been DELAYED and I'm still WAITING for it to start)<br class=""><br class="">So using any of the three words on their own without context or additional information will likely be confusing, or at least subject to different interpretations.<br class=""><br class="">I would be reluctant to rename DELAYED to POSTPONED, because it raises more questions (until when?) than DELAYED without providing more answers.<br class=""></div></blockquote><div><br class=""></div><div>Yeah, this makes perfect sense to me. Really good analysis. I agree that context is really important to eliminate ambiguity.</div><br class=""><blockquote type="cite" class=""><div class="">I think what it comes down to is the need to provide more information in the state name than is possible with one English word:<br class=""><br class="">WAITING_FOR_PRECONDITIONS<br class="">DELAYED_BY_RETRY<br class=""><br class="">These provide more specific context to the state but the state transition table gets to be unmanageable when there is a state for everything.<br class=""><br class="">If more Waiting/delayed states are added it in the future it might make sense to create them as sub-states of RUNNING, to keep the transitions manageable.<br class=""></div></blockquote></div><div class=""><br class=""></div><div class="">This all makes me think that we probably just need to clarify one of these names so they look like:</div><div class=""><ul class="MailOutline"><li class="">RUNNING_DELAYED - a substate of RUNNING and it has exactly this meaning: it’s generally running but delayed till some later time.</li><li class="">WAITING - it is not a substate of RUNNING and hence it means a task has not started yet</li></ul></div><div class=""><br class=""></div><div class="">And at the same time these names still remain not too verbose.</div><div class=""><br class=""></div><div class="">What do you think?</div><div class=""><br class=""></div>P.S. Thank you very much Robert!<br class=""><div class=""><br class=""></div><div class=""><div class="">Renat Akhmerov</div><div class="">@ Mirantis Inc.</div></div><div class=""><br class=""></div></body></html>