Don't be too hard on yourself, gentlemen.
The past three weeks I have been spending all my time in and out of class learning how to be a developer (we are focusing on JS/MEAN stack).
One of the most important things I have learned is the value of taking a break when you are stuck.
Also, failure is not a bad thing, you sometimes have to fail hundreds of times before you get it right.
Accurate software estimation seems to be another science entirely, and you get better with experience.
I am looking forward to the new game era!
We are dealing with professionals now. This is the 6th comparable software project in which I have been the feature-specifying client. All from different companies or teams, based on 4 different countries, over 14 years, with the combined project length measured in years and intensity in man-years. In each case the software has been designed by me from the scratch, been
the crucial and integral part of the startup's business without which no operations could profitably be conducted; mostly the startup's valuation has been over € 1 million at the time of ordering it, and I have had the position of CEO/president/whatever and a commanding stake. So yeah there may be more experienced guys in the world but not that many. Show me
one who has completely specified this many different systems for his own direct use, and been the client team key person during the implementation, for starters!
Allow me to vent a little (this is intended that you would receive benefit in learning how
not to do, not to lay blame on any individual except myself who cannot always realize how important it is to make it clear to the counterparty that bullshitting with me is a short rope, and a completely stupid idea. I am not of course talking strongly about the Wizard, whose only mistake was to slip 2 features in this week's release, of which features he could not evaluate the coding time accurately, but based on the assessment, I spent hours closing the google DB (this involved massive work in merging the datatypes from 10s of tabs to 4 main types and their attribute_lookup_tables - our DB has about 7,000 lines in Character, Lot, Building and Item tables and each line consists of the data in 10s of fields.
If I take the decision to close the DB, it needs to be based on solid reality and timing, which is accurate to the hour, not to the day or to the week! May the day never come when I enter any business relation again with jokers who cannot estimate their own work with a useful accuracy! (A note to the newbs here - it is
not difficult to be able to give an estimate of "1-3 hours in 90% probability" hey wtf if you do anything in your own work, you can probably estimate better, also if you do the household chores, even better). And we are talking about solid professionals here!
The decision that now failed, was the decision to think we can release the game with an exchange-type items trading system, in this week's release. Both the decision to schedule and promise the release to any future date when the system can be ready (and google DB used until that), or
stick to the original feature specification of this week's release could have been better. Many people can code, and some can very well. Many can estimate, but even if you cannot, I can compensate because I know how long it should take to make something. But if you can code, and estimate, and suddenly fail on either (which is basically the same thing), problem is at hand.
Whoever thinks he can add to my spex, nice features without realistic estimates,
and fail the release, is playing with fire!
The blame is not on me who
proposes the features, it is on the one whose estimates fail reality! (Tinkering with the spex yourself without asking me, is beyond belief and whoever is guilty of it hopefully never thinks of it again with other clients - certainly not with me at least.)
Once again: The development process decisions, which I make several each day,
depend on the estimates that the coders are providing. In Ultima, we have included features ahead-of-schedule based on the surprisingly fast deployment, and postponed others based on the estimate that they require days to complete. Hey - we don't have
days for anything except features that we cannot live without. Items trade being one.
So I assess the degree of my culpability: In the first project team my assessment of their capability was so much off the reality that I continued to believe something could be accomplished in acceptable or even tolerable timeframes, despite none whatsoever proof (the total lack of delivery
was indeed fooling me as I could not calibrate my assessment of their productivity nor my assessment of their capability to estimate). Now I was again lured by the tired developer (atypical for him) "yeah-yeah we can make all this by 9pm, let me just finish the office day first, go home, eat and chat with my gf", when I could easily see that the performance per hour had already suffered.
So we decided to have another rescheduling meeting today, after a good sleep, in a few minutes. We have them almost daily and when the deadline approaches, several per day. The decision will be to redefine the features included in the release, redefine the release date and time, and redefine how the game continues meanwhile. Will be posted soon!
I also want to commend HM and the Wizard Developer for persisting with further development on the trading system prior to release of the Ultima version. A fully functioning trading platform for in-game assets is worth waiting for, and I feel very relieved to know that HM prefers to achieve a quality outcome in this instance rather than meeting a previously announced launch target. A user friendly trading platform will catapult CK a lot further than deadline punctuality! A good decision!!
Most likely we press on with the decision, but that does not remove the importance of accurate estimation. What kindled my anger really, was the remembrance of the bunch of jokers whose inability to estimate, or deliver, caused a 4-month break in the game. For a long-time businessman like myself, the decision to
temporarily close down all operations due to migration is one that is taken only after considerable planning and making of a strict and detailed execution plan. The damage to the game from our previous errors is incalculable, so it would feel good to get it right this time