Après avoir atteint l'approbation du processus d'extension des fonctionnalités, Oracle a confirmé juillet 2017 comme nouvelle cible pour la version 9 de Java. La date est très similaire à celle précédemment prédite par InfoQ, bien que, pour diverses raisons cela pourrait indiquer un risque : alors que notre estimation était basée sur une période d'extension de fonctionnalités sur trois mois, la période actuelle va durer sept mois, avec des réductions de l'effort de test pour faire la différence. Des tests précoces et informels pourraient être en place pour compenser.
Au moment de la dernière analyse d’InfoQ, la dernière date disponible pour les fonctionnalités dont l'extension avait été approuvée était au 1er septembre, ce qui suggère un délai d'environ trois mois (cela, bien sûr, ne prenait pas en compte les fonctionnalités sans estimation). En supposant que ce retard allait repousser les choses uniformément, cela aurait mis en évidence une GA vers fin juin 2017. Cependant, le calendrier proposé actuellement ne repousse pas les choses uniformément, créant potentiellement un certain nombre de risques. Voici le calendrier avant le dernier changement :
- 2016/05/26 Feature Complete
- 2016/08/11 All Tests Run
- 2016/09/01 Rampdown Start
- 2016/10/20 Zero Bug Bounce
- 2016/12/01 Rampdown Phase 2
- 2017/01/26 Final Release Candidate
- 2017/03/23 General Availability
Et voici le nouveau calendrier proposé :
- 2016/05/26 Feature Complete
- 2016/12/22 Feature Extension Complete
- 2017/01/05 Rampdown Start
- 2017/02/09 All Tests Run
- 2017/02/16 Zero Bug Bounce
- 2017/03/16 Rampdown Phase 2
- 2017/07/06 Final Release Candidate
- 2017/07/27 General Availability
La première chose à noter est que "Rampdown Start" se produit maintenant avant "All Tests Run". Comme il est précisé dans la définition des jalons, "Rampdown Start" est le moment à partir duquel seuls les bugs avec une sévérité P1-P3 sont fixés, alors que "All Tests Run" marque le moment où tous les tests ont été réalisés au moins une fois sur toutes les plateformes supportées. Cela signifie que la résolution de problèmes ayant une sévérité plus faible sera automatiquement annulée avant même qu'il n'y ait eu la chance de tester complètement la nouvelle version de Java.
Rampdown Phase 2 est, au contraire, prévue pour être environ un mois et demi plus long qu'auparavant, probablement pour compenser la phase 1 plus courte. Dans la phase 2, seuls les showstoppers sont fixes, ce qui en combinaison avec ce qui précède, indique une préférence d'avoir une fonctionnalité de base qui fonctionne au détriment de la présence de bugs mineurs. Enfin, le délai entre la première release candidate et la GA a été raccourci à moins de la moitié. La définition des jalons indique que si une autre Phase "Zero Bug Bounce" est nécessaire après la release candidate, la GA sera en danger. Compte tenu de la réduction du temps de test dans les phases précédentes et du temps plus court disponible pour réagir, la probabilité que cela se produise est plus élevée avec le nouveau calendrier.
Un probable facteur d'atténuation devrait être pris en compte : depuis la fin de la phase feature complete en mai 2016, il est possible que certains tests soient déjà en cours alors que l'extension des fonctionnalités est terminée. Cela pourrait ne pas être reflété dans le calendrier vu qu'aucune phase ne peut être formellement avancée. D'une part, Rampdown implique que seuls les problèmes P1-P3 seront abordés, alors qu'il est possible que des propriétés inférieures soient abordées en ce moment. D'autre part, "All Tests Run" ne peut pas se produire avant que tout le code ne soit verrouillé. Dans tous les cas, l'extension des fonctionnalités tardive inclut des éléments clés pour le système de modules comme le JEP 282, ce qui suggère que même avec des tests de pointe, Java 9 est en route pour une cahoteuse balade.