Join Bridge Winners
All comments by Nicolas Hammond
You are ignoring the author of this comment. Click to temporarily show the comment.
Kevin,

Writing on the wall started around summer 2013. ACBL stopped payment trying to force a renegotiation of the contract to make it a WFH. Robert admitted that ACBL stopped payments in Providence BOG.

I've got all the emails from ACBL regarding the legal reasons why they were dropping ACBLscore+, including their outside counsel opinion on ACBL's use of ACBLscore+ in May 2014. He said no, ACBL management/league counsel now have to find a reason not to use it. April 2014, ACBL put on their Facebook page how wonderful this new software is. May 2014, Facebook entry deleted. ACBL scrambling as they can't use this software they have spent all this money on. What is ACBL to do? Management/league counsel are the ones that were responsible for negotiating the original contract, apparently without outside review.

Ask the Board Technology Committee to review the emails from management to outside league counsel from August 2013 to May 2014.

The good news - if there is any - is that Hammond Software has rights to the code. I never intended to use it for Bridge - that's what ACBL were going to do; but if they are not going to use it, I see no reason not to make it available. You don't have to use it. I've worked on it since May 2014. It's now much more backwards compatible with ACBLscore.

==

Let me try and explain the estimates.

==

During the original contract, ACBL stopped payments, didn't provide specs. I had to put some developers working on critical path items on furlough. Critical path means exactly that. Every day of delay is a delay in final delivery. The EDMOV/movements was critical path from day one. This functionality had a 6-7 month delay. No matter how many resources are thrown at the project, there is still a 6-7 month delay - caused by ACBL. I am not going to back down from this number. So a final delivery, matching the contract requirements, is a minimum of 6-7 months away.

The original final delivery assumed that ACBL were going to provide 3 man years of developers during the ACBLscore+ contract so we can implement things differently (e.g. tournament finances, club finances, results). They provide 0 years.

So what I would do now for a final delivery is totally, totally different than what was in the original contract.

ACBL internally can't deliver on time. So a roll-out needs to be structured differently, i.e. a
roll-out that eases the transition from ACBLscore to a new system.

The good news…. other parts of the software are ready for release.

For a roll-out, I have more and more code that is backward compatible with ACBLscore.

Example:

I can start a KO, do all the PREGAME (ACBL terminology) then create a Gamefile.

I can create a gamefile with no PREGAME.

I can run a KO, then output an ACBLscore game file.

So we can transition at virtually any point from Bridgescore+ to ACBLscore.

My planned roll-out is very different. It would start on day 1. Start training TDs, move them off ACBLscore.

March 6, 2015
You are ignoring the author of this comment. Click to temporarily show the comment.
I've got 30+ years experience doing UI; including replacing legacy systems. Probably one of the reasons that ACBL hired me in the first place, so I'm comfortable with what is needed.

ACBLscore+ was ready for the first round of user comments - get some experienced TDs, working in a live setting. I learned with the ACBL TDs that we really need a live setting, with the stresses of getting event started/running; classroom setting did not work with them. During the contract, ACBL would rarely let me run the software in parallel in a live situation. It was only at my local sectionals and regionals, where my ACBL Point of Contacts (POCs) were not there, that we could do some real testing. Of course, we did no visible testing at NABCs. Very sad, you guys never got to see what it can do.

We did A/B testing. We did what one TD referred to as a Kobayashi Moru test. What was frustrating to me doing all of this was trying to explain to my ACBL POCs (there were several), why all this stuff is important. Yup, got some test background as well :-)

Over the last year, I've rolled out more and more functionality of ACBLscore+ (I still use < 30% of the code base) with ACBL TDs.

I must thank the TDs I've worked with; both during the contract and subsequent to the end of the contract. They have been fabulous. Willing to listen to new ways of doing things. Little stubborn at times, little obstinate, but willing to listen.

So many of the TDs have been trained and conditioned to do things a certain way that it is very difficult to explain how things can be done better. So much of what they do is based on how ACBLscore works, not on what is the most efficient way of doing things.

My standard test with TDs, and I can still recommend it to you, is go ask a TD how an event should be started. Let's take a KO or a Swiss (or even a pairs). What does a TD need to do. How would a TD design new software to start an event. I could even ask you, you are technology aware, bridge player - design software to start an event. EVERY TD, bar none, could only describe it in terms of how ACBLscore works at the moment.

What you need is someone willing to step outside the box, look at the problem from an objective viewpoint, figure out how it should work, then implement it.

Then you've got to train the TDs.

Let me give you a specific example:

ACBL stated in Providence that they are going to spend $600K on a variety of projects. One was to make it easier to a TD to start a KO event. The current ACBLscore process requires them to create a new event for each bracket. Let's take Gatlinburg, which may have 20 brackets. One TD has to create a game file with 20 events - each event a bracket. They have to manually create each event (bracket). It is about 1 minute per event, or about 20 minute to create a game file BEFORE you have started to do any name entry or anything.

This is what the current ACBLscore process is.

No-one has complained “in centuries”.

I've got a much, much better way with Bridgescore+. One of the reasons for putting this in the list of items to do was that Bridgescore+ is so much better.

OK. So…. I've got code that can easily create ACBLscore game files. It was trivial to create a new interface so that all you need to do is to specify the number of teams in each bracket and voila, got a game file.

See https://www.youtube.com/watch?v=rqLxZLS1beA (0:59).

This is code I created after Gatlinburg. It's free. It's up on the Internet at

http://www.hammondtest.com:60000

Username: td
Password: happy

I'll give you no training.

Go ahead, create an 8 bracket KO game file. Let's say bracket sizes are 9, 10, 11, 12, 13, 14, 15, 16 teams. See how long it takes you. Take this ACBLscore game file, read it in ACBLscore. Use it.

See https://www.youtube.com/watch?v=NpZ2qtAeCL0 for example.

Bring up ACBLscore. Do the same thing. Create an ACBLscore game file with 8 brackets.
See https://www.youtube.com/watch?v=RpTyN7tEviM where I do exactly this (6:40)

Which is the better interface - ACBLscore or Bridgescore+





March 6, 2015
You are ignoring the author of this comment. Click to temporarily show the comment.
From the Technology Committee minutes:

“At this time we are not looking into pre registration.”

It's very hard to do with ACBLscore, so I'm not surprised.

But…. trivial with Bridgescore+.

Code was easy; few hours. Going to spend more time with testing. Hardest part is convincing TDs it is going to work and will be less work for everyone (TDs/caddies/players). Everyone is so used to the old way of doing things and few people can look at the big picture (what players have to do, what TDs have to do).

We've got pre-registration planned for Gatlinburg. Huge time savings for TDs, much better experience for the players. We did a small roll-out in Callaway Gardens. Worked very well. Going to tweak it a little to make it easier for TDs. Only complaint was from a Mr Steve. W. from NY who complained that having the events start on time affects his normal smoking break at game time.

TDs weren't used to the fact that teams had pre-registered so kept looking for the entry form. No longer needed….

I've got one hand tied behind my back doing this because we have to make sure that everything is backward compatible with ACBLscore. So far, so good.

I'm working with the Gatlinburg TC/DIC/TDs, District 7 Tournament Operations Committee. Huge kudos to them for willing to push the envelope.

It's going to be baby steps at Gatlinburg; I'm pushing for more but the DIC wants to go slowly (which I understand). First trial will probably be Monday evening KO; we will probably restrict to the top brackets so we can train the TDs and players. Not being elitist, but understand that it needs to be a slow rollout and we will build upon the success as the week goes on. More details later. The metrics from Pine Mountain were very good. I'm excited by what's coming up in Gatlinburg.
March 5, 2015
You are ignoring the author of this comment. Click to temporarily show the comment.
A first release of ACBLscore+ would be 1 day away. You would start seeing benefits immediately.

I would do incremental releases as more real world testing is done. What ACBLscore+/Bridgescore+ needs is real-world feedback from the real users (TDs) in a live testing. Run in parallel with ACBLscore. Work out the kinks. You can't rush that type of roll-out. I've done lots of roll-outs - you don't rush them.

Remember ACBLscore+ (Bridgescore+) is currently used at tournaments, so it has been released.

Best test will be Gatlinburg. Let the software speak for itself. For all of you that were there last year, you saw but a small fraction of the software. This year will be even better.

Ask any player that has seen it in operation, ask any TD that has used it and get their feedback. At Callaway Gardens/Pine Mountain last week lots of players came up to the TDs to congratulate on the new software.
March 5, 2015
You are ignoring the author of this comment. Click to temporarily show the comment.
The frustrating thing for me is that ACBL has the code to start KOs, to run Swiss with projectors, it works, but didn't even bother to test ACBLscore+ to find this stuff out.

Last month I got an email from ACBL accusing me of not providing this software, as it was developed during the ACBLscore+ contract. I was amazed as this means that no-one bothered to check the software.

This was my reply:

>
>
> Nicolas,
>
> ….redacted the sender and email….
>
> … statement that ACBL staff saw the multiple tests software….


Correct.
If Multiple == 2.

The KO start was demo-ed at the first KO event in Dallas at the NABC in March 2014 to AAAA & BBBB.
We sat behind the TD table; I had two laptops.
One for data entry.
The other was what would be displayed on a projector.
AAAA/BBBB asked that I not use a projector visible to the players for this event.
I had all tables assignments ready about 1-2 minutes after the event started (last entry sold); the TDs didn't have it ready for about 10 more minutes.
I asked AAAA/BBBB if they wanted to see more, i.e. run the event start to finish; they said no.

I asked if they wanted to see other events, they said no.

I don't remember the DIC of the event.


A first version of the Swiss was demo-ed to AAAA/BBBB/CCCC in Atlanta in November 2013 at a Sectional in Atlanta/Roswell.
DDDD was also there.
The visual display to players has undergone several revisions since then.
AAAA/BBBB didn't want to see the latest version of the Swiss code in Dallas.

You had some ACBL HQ Staff at Gatlinburg in April 2014 who would have seen the KO display, but to the best of my knowledge, no-one asked to see how the screens worked that created those displays.

Obviously lots of DICs/TDs have seen the code; particularly those in my area.

> …paraphrasing…. this code was not delivered to ACBL…

It is.

> …paraphrasing….. great concern. Explain why is it not there…..

It's all there.

It's a great concern to me that you are not aware that it is, or that someone has told you that it is not there.

==

To start the KO:

Take the code from the final CD.
Install it.
Start it.

Select a Tournament.
Tools->Tournament->(Select one)

Start a KO by select “+K.O.”

Take all the defaults. Just select “Create Event”

Start adding teams (“Add one” on right side of the screen, enter team MPs, then hit “Add” or just Enter)
Let's add 20 teams.

To view the projector display.
In the submenu (the menu below the top menu bar), select Display->Entry selling

This is the view that should be displayed on the projector.
This screen should be displayed while entries are being sold.

To complete the KO, click on Bracketing.
Fill out form.
Click on Matching.
Verify the data.
Change if wrong.
Click on Tabling.
Fill out form.
Select Publish for each bracket to display.

Select Display->Assignments
This is the screen that should be shown to the players.

==

For the Swiss.
Start a Swiss

Select Tournament.
Select “+ Swiss”
Take defaults.
Select “Create Event”
In new screen, add some teams, go to “Names”.
Add, say, 10 teams.
(There is always 1 by default, so you now have 11 teams)

Go to Scores/Matches/Rounds
Select Round 1
Select “Assign Remaining”
This will match 1v2, 3v4 etc..
Enter tables numbers, e.g. A1 for team 1, A2 for team 3, A3 for team 5 etc.
Select Display->4-column layout
This is the screen displayed to the players on a projector.

==

I've made a lot of changes to my version (since May 2014) based on feedback from TDs and feedback from players.
Lots of changes for both Swiss, KO, and other functionality.

==

I guess the biggest concern is that you have been told that this code is not there.
This should be a major concern to both of us.
As you know, I wasn't involved in any of the testing of ACBLscore+ at ACBL, or any demos to anyone at ACBL or demos to EEEE/FFFF.
If something as simple as this wasn't shown, then it begs the question on what else was not shown.
Or if the system(s) were correctly configured when giving a demo.
So if ACBL did analysis based on wrong/incorrectly configured software that may explain some of the confusion that exists.


==

If someone wants to look at the code that displays the information shown on a projector, just to verify that the code is actually on the DVDs, then

in the DVD I sent,

go to the top of the UI code


./repositories/user_interface


The code for display is underneath this directory at

./app/views/display/pregames


This is my screen log after mounting a copy of the DVD I sent to you:

me:nicolas$ cd repositories/user_interface/
me:user_interface nicolas$ cd app/views/display/pregames/
me:pregames nicolas$ ls -l
total 28
-rw-r–r–@ 1 nicolas staff 5241 May 29 2014 assignments.html.erb
-rw-r–r–@ 1 nicolas staff 6265 May 29 2014 entry_selling.html.erb


These two files contain the code that displays the data shown on the projector for the assignments and the entry selling.

> … paraphrasing…. confirm everything delivered…

Everything was included.

You had two final code deliveries, one marked April 1, 2014, and one marked May 29, 2014.
The May 29 superseded the April 1 delivery.
The April 1 delivery had all the source code, documents, and Wiki pages.
The May 29 delivery just had the source code; it did not include the documents or Wiki as no changes to those.
May 29 delivery was signed for by M. Hayes on 6/2/2014, USPS tracking number 7007 1490 000 1514 5596.

You can compare the two DVDs to see the work done April/May 2014.
The April 1 delivery should also have the start KO and Swiss code.
I'm showing 114 files changed in the user_interface repository alone between these two releases.

Both deliveries were DVDs of all the source code pulled directly from GitHub, the source code control system we used.
You had several people that had full access to these GitHub repositories; I assume that they were pulling the code at least once a week so you can compare what is on the DVDs with the source code that your internal people were pulling.
ACBL had full access up to these Github repositories through May 29.

The source code was pulled from GitHub at some point on May 28, 2014, DVDs were created, packaged etc.
There were 66 files in the ./user_interface repository that were updated on May 28, 9 files on May 27, 12 files on May 26, etc.

DVDs were packaged and then sent on May 29.

From the records, the first check-in of code that is intended to be displayed on a projector is September 2013.
The code control log file entry (you had access to all of these, I presume it was being pulled at least once a week) is

e7ce91c GGGG Mon Sep 9 16:13:07 2013 -0400 First draft as a TV output for Team section

We later renamed from “TV output” to “Display output” where display includes TV/projectors etc.
I think this Sep 9, 2013 code check-in was for Swiss teams.
The first check-in of code to start KOs using projectors was November 2013. Possibly earlier.
Not saying it worked then, that was the first time code was checked-in for each of those components.
Swiss was certainly working by November 2013 (first demo to Bruce/Ken).
KO starts was certainly working in March 2014 (demo to Bruce/Ken).
KO starts was used extensively in Gatlinburg (April 2014) - you have all the code that was used at Gatlinburg, along with bug fixes/enhancements made after Gatlinburg. All on May 29 DVD.

Someone at ACBL took pictures of the screen at Gatlinburg in April 2014 and posted them on the ACBL Facebook page, so you can verify what the code looked like on the projector (the pictures have since been taken off the ACBL Facebook page). Compare those pictures with the code that you have and you will see that everything was delivered.

==

I've made lots of enhancements since; the code I've made available on the Internet to the Districts is from September 2014.
This is primarily for the KO starts. There's some documentation for the users as well.

I've made continual enhancements since the September delivery.

==

Hope this helps.

Am very concerned that someone has told you that code wasn't delivered.
If they can't find something as simple as that (it's hard to miss it!!), I am extremely concerned on what else they can't find.
This may explain some of the confusion that has been occurring.

March 5, 2015
You are ignoring the author of this comment. Click to temporarily show the comment.
ACBL politely declined my (free) offer to run the NABC Swiss using projectors, and to help start the Regional KOs using projectors, at the New Orleans NABC.

I won't be at the Technology Meeting on Thursday, or the BOG on Sunday (first one I've missed in 3 years), as on Spring Break with my kids.

I will be in New Orleans the second week. If anyone wants a private demo of Bridgescore+, or more details on how to run for your District, let me know, private email fine.
March 5, 2015
You are ignoring the author of this comment. Click to temporarily show the comment.
This was the follow-up email I sent to Greg/Uday after the phone call.


Many thanks for spending the time on the phone with me last week. I know that you are in a difficult situation. ACBLscore+ is 7-10 man years of effort so it's difficult to explain all that it does in only a couple of hours. The key benefits to ACBLscore+ are not in Version 1.0 (what you have) but in the potential of future versions. It is going to be much easier to introduce new features, new game types etc. etc. It really is much quicker implementing code. You will see some of this in Gatlinburg.


1. … Redacted - not relevant - mentions individuals ….

2. You talked a lot about an installable image.

This was in Phase 5 of the contract.

Phase 3 was done under time, and under budget. This was about a year into the contract. I needed almost nothing from ACBL to be able to complete the first 3 phases. So I could predict times/budget, and met them. I'm normally very good, much better than others, on estimation.

Phase 4 was the start of when we needed information/specs from ACBL.

We never finished all of Phase 4 of the contract (anything that had a 3+ month or longer delay from ACBL). So some of Phase 5, which depended on Phase 4, wasn't done. This included the installer. I still don't see writing an installer as a big deal. Clearly ACBL have made a big deal of it. We still managed to do some of Phase 5, but a lot of it couldn't be done. For example, we could not do a release to clubs because this got stopped by ACBL. We did some of Phase 6. Same rationale as Phase 5.

I had planned on Windows installer and Mac installer being about 2-8 man weeks of work depending on who did the work. 2 weeks if I could hire someone who knew installer/DMG files/technology; 8 weeks if I used someone on the project already who did not know installer/DMG as they would need to learn the installation tools. This was total time elapsed. It would involve some of my time as well, but on an interrupt driven basis. The installer would be a wrapper around Ruby/Rails/application code/DB server/configuration files all of which needed to be installed. Nothing different than other software packages out there.

Part of deciding the installation is deciding what versions of different software would be used.

For example, for the web server, do we use thin, mongrel, unicorn, passenger or puma? Apache or nginx? Apache wasn't on my suggested list to ACBL as the production web server for deployment so I'm surprised that Apache was used by ACBL. I have never run ACBLscore+/Bridgescore+ on Apache. Apache is a heavyweight, way too much overhead. I guess if you wanted to show ACBLscore+ badly on a 512Mb machine, you would deliberately choose Apache. I use thin/nginx for development.

The intent was always a one click type installation. The current way of installing the software is NOT how we would plan to ship to the end users.

For the DB server, there are several SQL engines to choose from: Postgres, mysql, SQL Server Express. Currently I use Postgres, but I might not used that for final production release. There may be some support benefits to using SQL Server Express on a Microsoft platform.

The original software was first developed on Rails 3.1, then updated to Rails 3.2, then Rails 4.0. Currently I use Rails 4.0.4. Latest Rails is 4.2. Reason I mention this, is because newer versions of the underlying code make certain things easier and newer tools are announced/released which may change the decision of which tools to use for the final release. I normally try and stay 6 months behind the latest releases to allow all the bugs to be fixed. This was all going to affect the versions used in the Installer. Another reason why the Installer was on the last set of things to do.

It was entirely possible that we could use a different web server and DB server on a Mac than a PC. For PC, using SQL Server Express is a strong possibility, but not on a Mac. Easy to change the database adapter on Rails.

I didn't see creating an Installer as a particularly difficult component. But didn't see any need to do it until we had decided which version of the web server/DB server to use on each platform. As such, the Installer was dependent on Phase 4, Phase 4 got delayed by ACBL, so we held up on the work until we could finish Phase 4.

Also, do we include some additional support software? I wanted to include either vnc, or TeamViewer. This was a decision for ACBL support. These questions were asked before Sep 27 2013, still no answer by Mar 31 2014. Six month delay.

I still don't see a one-click Installer as something difficult, a little time-consuming. I don't see it as a hold up to a Score+ release. There are other things that need to get done and could be done in parallel. For example, I still don't have the masterpoint assignment/eligibility specs. Without those, and MP testing, you can't do a full release to clubs. So work on those in parallel.

Greg, you alluded that this should have been done, you have to remember that for a large part of the last year of the contract, particularly during Phase 4, ACBL stopped paying bills to force me to change the original contract to become a work-for-hire. My company had to borrow into the 6 digits to pay the contractors we already had. The last thing I was going to do was to borrow yet more money on a new contractor for something that was not critical path when ACBL wasn't paying bills. This had a serious impact on the scheduling. Installer was dependent on the support issues. Never got an answer.


3. Tournament Finances

Yuk. What a mess.

Excel is the way to go.
We can use Excel, create all the data, export to whatever format we need.
It's what we (ACBL/Hammond Software) agreed upon.
You won't see this in the contract, it was decided after the contract.
I have all the emails.
We did write an Excel file that implements tournament finances using ACBL.
This was a preliminary version, ready for first review by customer before we did more work.
But it was functional.

TFR (Tournament Financial Reports) - fancy name for all the Tournament Finance had a 3+ month delay (July->Nov 2013) waiting for feedback from ACBL. Nov 2013 they did a Change Request.

No Excel. They wanted it all redone.
“Tournament Directors are too old to learn something new, like Excel.”
(That is a direct quote).
ACBL didn't want Excel, so we redid everything using Ruby/Rails.
Lot of extra work.

After I showed that, they then wanted the data from Score+ in a specific format…. an unzipped Excel file. Go figure.
This Change Request was an impact of about 1+ month to the contract, but I never billed or charged ACBL.

See https://www.youtube.com/watch?v=zsWDWEuyLig

I posted this 6+ months ago.

This is what is in ACBLscore+, what ACBL has.
I haven't touched this code since it was delivered to ACBL.

Note that after this was delivered to them, they wanted it done again.
So a third version. At this point, I said no more without a CR.

Tournament Finances probably make up about 10-20% of the ACBLscore code.

For full replacement of ACBLscore TFR, we can replace with ACBLscore+ or with Excel.

The missing piece is to go from ACBLscore+ data to the old fashioned ACBLscore tournament financial file. Note that this is code that ACBL were supposed to provide. Exhibit F of the contract. Last paragraph. So we met all of the contract requirements for Tournament Financial Reports (TFR). I could implement the code that ACBL were supposed to do. My estimate is less than a week of work, i.e. add a menu item “create ACBLscore TFR file”, which would create exactly the format of the file that ACBL uses. It's probably less than a week of work, wanted to give myself some wiggle room. If you think this is something critical to be able to implement, I could. Just shows how easy this type of work is.

The ACBLscore TFR code is horrible. Not the coding (that's great!), just the whole concept and implementation. Should never be part of a scoring program. Should be an Excel program, so many reasons.

You really need to talk to a current DIC about tournament finances; also talk to a Unit/District treasurer and see all the work that they have to do at the moment. The new implementation fixed all these problems but the ACBL's view was “we don't care about those people” (direct quote). “Those people” are the volunteers at the Unit/District level that have to pay all the taxes, file the 1099s etc. The new version provided them with a lot more information. I know, I was a Unit President for 2 years and we had to deal with these issues.

4. Club games.

See https://www.youtube.com/watch?v=j6VBixY_I9Y

This is a video from a few months ago.
A club game from start to finish.
Name entry.
Score entry.
This is the code that ACBL has.

What is still needed before a release to clubs is

a) Full support for all movement types
b) EDMOV (ask a TD or CD what this means - it is quite a bit of work). Thousands of lines of code in ACBLscore for EDMOV.
c) Full Bridgemate support
d) Full masterpoint support

None is particularly challenging.
Movements was delayed by 6+ months by ACBL (Sep 2013->Mar 2014 == 7 months).
I estimate that there is 6-9 months to finish movements.
No surprise with the number.
It was a critical path item when the project started.
Delay a critical path for 7 months and the overall project is delayed by that long.
Nothing changes to the final deadline.
Still got 7 months to make up do the work.
I estimate 6-9 months because the person I hired to do the work is part time.

This is the type of delay that is incredibly frustrating for me.
I had found someone to do the work, which was hard enough, but ACBL could not get the specs delivered. Even worse, ACBL had stopped paying so I had to put this person on furlough. So the most critical path item of the entire project was on hold for about 7 months.
Throwing more developers at the project would not make it go any faster.

5. Roll-out plan.

I'm not sure what ACBL's original intention for a roll-out plan were. This was something that they were supposed to write, but never did.

My suggestion now is very different that it would have been at the start of the contract.

I'm now much more aware of the capabilities of the in-house staff.

My suggestions are at

http://bsp.bridgescoreplus.com/?page_id=44

This was posted months ago; nothing changed in several months, no changes made based on our phone call.

I would make much, much more use of the Internet. Create a proper CSR (customer service rep) experience. Put all work-arounds on the Internet. etc. etc.

My roll-out suggestion is based on minimizing cost, maximizing effective use of resources.

Critical path, even if you gave me all the resources in the world, for all features is 6-9 months.

Based on my knowledge now, I would NOT try and rush roll-out. I've done a lot of production roll-outs; based on my knowledge of customer (ACBL) and users (TDs/CDs), we need to go slow, not fast.

I would do a very structured roll-out.

I posted the roll-out plan (see web site) several months ago. I stick by all the times and dates on it. I wrote this some time ago. I've made some code changes that reduce the time for some functionality. For example, I could do the NABC Swiss in New Orleans, projectors, immediate results etc. etc. running in parallel with ACBLscore. Demo-ed this ability at several tournaments.

6. Reports.

See https://www.youtube.com/watch?v=D_kcONH9GF0

This shows the power of SQL queries. You can either write your own, or use a pre-canned report. I was expecting this to grow from a few that we provide to 400-500 canned queries. Note that the data can go straight to Excel (see the speed) so that Club Owners can do more with the data.

This is what club owners want.

7. Release.

The big question everyone wants answered is how long (time), how much ($$) to finish the project.

Difficult to completely answer as the two are related.

My view is that the roll-out should minimize the cost (trade time for money), minimize the risk.

Every product needs some real-world testing before a full roll out. This is where ACBLscore+ is. It needs TDs to use it in the field.

Even if all the code was ready today, it's still going to take time to roll out. There is training of TDs, training of first/second level support within ACBL to do.

You use part of this time to finish development, part of the time for getting proper feedback.

BTW, this is exactly how ACBLscore was rolled out. It took 9 years from ACBL buying COMPU-SCORE (forerunner to ACBLscore) before Swiss Teams was added.

Code to generate Fast Results was delivered to ACBL in April 2012. It took them 2+ years to roll-out the code.

8. Release to clubs.

Look at the last status report - May 2014.
Page 80.
Club Finances.
See discussion on what is needed for a release to clubs.
October 2013 is the first time it made it to the Wiki, lots of emails prior to that.
Decisions had been made by October 2013 on how club finances would be implemented in ACBLscore+.

By February 2014, still no plans from ACBL on how they were going to integrate.

If you look at the status report (page 58), we had XML output from ACBLscore+ in August 2013.

So we went over 7 months (August 2013 to March 2014) with no progress from ACBL on club finances.

This is why it is very hard to pin down exact dates/costs to complete ACBLscore+.

Knowing what I know now, I would NOT implement club finances they way that we were going to do them.

Instead, I would implement club finances in stages.

Stage 1.
Abandon the plans to replace club finances.

Implement the ability for ACBLscore+ to create the same format of monthly reports they current send to ACBL.

(There are some legal issues, will explain over the phone and not in writing).

I could create this code fairly quickly if you ever doubt the ability to do it. All my work now is volunteer hours; I'd much rather work on something with a bigger impact, e.g. code for Gatlinburg. that I know will be used rather on focusing on areas of Bridgescore+ that would involve ACBL's input.

Stage 2.
Plan on upgrades to club finances.
Lots that can be done.
Easier to explain by phone than email.

9. Starting a KO.

To re-emphasize, when Jay is running the Bridgescre+ to “start a KO”, the TDs runs ACBLscore in parallel as a hot backup. Just in case anything goes wrong.

I'm now at the point that the local TDs no longer run a backup when starting a KO. They use Bridgescore+ to start it.
So there is only one data input.

When I was last down in Florida, Patty Johnson stopped running a hot backup, as she was comfortable that the software works.

This is all part of the transition plan. Work in parallel. Gain trust/confidence of TD/DICs. Drop ACBLscore. Normal stuff for a software release of highly customized software. Surprised that you would think it would be any different.

-

Next step for me would be having the TDs run the event using Bridgescore+. Again, initially in parallel. Then drop ACBLscore. Bridgescore+ can create a game file that can be used within ACBLscore.

Going to be much easier for me to introduce Swiss for KOs, because support for board-by-board scoring is built into Bridgescore+. It does not exist in ACBLscore.

10. Design

Greg - you alluded to the fact that you would probably use a similar design.

The code was at the point where I wanted to have it run by TDs at tournaments.

The ACBLscore+ contract called for 3 man years of work by ACBL (Exhibit F). It called for them to provide developers for integration (last paragraph of Exhibit F). They provided no developers. So the project is behind with all the integration work.

Based on what I know now, the integration would be done differently. Instead of introducing a new way for club finances, we would just the old way, then migrate. From how the ACBLscore+ contract was written, this is now a Change Request (CR). So we have to factor in the new costs and resources (time etc.) because of this CR.

There were many CRs within the ACBLscore+ contract from ACBL, e.g. Tournament Finances, Reports, Printed Output, Club Finances. Had I billed each CR separately, the overall cost to ACBL would have gone up (both time and $$). Some of these CR were negotiated for other items (e.g. add projectors/drop printed output), then ACBL came back and said they wanted the dropped item. It's yet more cost to the project.

With full resources, and immediate delivery of all missing specs from ACBL (e.g. Masterpoints assignments/eligibility, movements), everything could be done in probably 6-9 months (assuming I can rehire the people I had). I would have 1 full time (me), 3-4 part time + would want someone from ACBL that was going to learn the code. Realistically this is not too different than the delays that were caused by ACBL.

A better implementation would be the slow roll-out I've mentioned. This would be less risk for all involved. It would be cheaper. Much safer.

If there is something that you'd like to see implemented, so you get a good idea of how quickly something can be developed, let me know.

My version of ACBLscore+ (Bridgescore+) is further along in many area; but still at same point as ACBLscore+ in others. I've not worked lately on code where I have no specs (e.g. masterpoints), but I have worked on other areas, particularly the interface to ACBLscore as if ACBLscore+ is going to be rolled out, it will need to work a lot closer with ACBLscore than ACBL originally intended. You can see some of that with the web services I've released and documented on Bridgewinners.

==

You wanted a full break-down of what was needed to complete ACBLscore+. Along with time/price. That's going to take a lot of time/effort. The time/price is variable. Difficulty with some of this is knowing when ACBL will deliver the specs. So, let's assume that they deliver all the specs on day 1, and I'm not waiting on them for anything during the work, that TDs are always available, and that I get a 24 hours response to questions.

With estimates of timing, this is me doing the work. You need to multiply by different factors if other people do the work.


1. Masterpoints.

Need to complete MP code. Written in C. About 8,000 lines of code so far. Development stopped in Jan 2014 as no specs. Working for about 95% of game files/types (i.e. same results as ACBLscore+). The edge cases required the specs. 10% of game files we looked at had the wrong MP calculations (in ACBLscore) so trying to test ACBLscore+ when the sample data set has a 10% error rate is very hard.

Ideally this is a project you can give to one person. The code is self-contained. It is in a library. Basically a C shared library. Needs a C programmer, not a Ruby programmer.

They can build up the test cases.

It _should_ only be about 1 man month. After we get the specs.

But as I would now have to get someone involved, there is a learning curve for someone new.

Ideally would use an ACBL programmer for this as they would have to learn the MP code as it changes each year.

Elapsed may take longer; there is a lot of testing to be done.
I have all the test suites.

Just look at the amount of time used for the last MP set of changes.
I would estimate that the total elapsed time for these changes is probably 6-12 man months, if you include all the time that the directors are still spending to test the broken software.


2. Movements.

Implement the missing movements.

We are almost there. We have code that generates Mitchells, some Howells. Got prototype code for importing a MOV file (or XML file format of a MOV file).

Needs integrating with the UI.

Typically that's 2 different people - one who knows movements, one who knows the UI.

I did have a movement person. If we can re-use him, great. If not, it's a search to find a good programmer that understands movements.

Once we get pairs, need to do individual, Swiss, and BAM. Not too hard once we get the pairs done right.

2-3 man months. It's complicated code. Got to find the right people. 1-2 elapsed.


3. Edmov.

Most complicated piece. Affects movements/scoring/UI.
No work started, other than high level discussion.
Estimate 4-6 man months. Assuming same person that worked on Movements above.


4. Tournament Finances.

Depends on how ACBL wants it done.
1-2 man months.

Take a look at the Wiki->ACBL Integration->Financial Reports (Tournaments)
for a write-up (done in August 2013) of what is involved for a proper roll-out of Tournament Finances.
I had 20 weeks.
The coding I did was about a month, if that. Several thousand lines of code.
But elapsed time for something involving many people is much, much longer than the coding time required.
Again, any reason, for a slow roll-out, with very few developers.


5. Club Finances.

1 week to output in current format. Probably less.

Supporting code/testing would probably take 2-3 months elapsed with testing.

For something like this you have to really test, stress test, and user test.

Most people ignore this. There is a big difference between a developer saying the code is done, and it being integrated with everything else.

See same comments under Tournament Financials.


6. Special games MPs.

Needs testing. Nothing difficult, just a lot of testing. Will take a fair bit of elapsed time. See Masterpoints.
No estimates as need the specs.

7. Help.

We have rudimentary help.
We need to integrate the Tech Files.
Depending on the format of these files, will determine how much effort is needed.
But we have a help system and a help sub-system. More help text probably needed.
But what I would consider to be release-quality requires content, not so much the coding.

8. Club Types

Supporting all different types of clubs.
Just needs more testing.
Some UI work needed.
< 1 man month.

9. Legal.

Yuk.
Nothing complicated from a coding standpoint.
Just long elapsed time to get answers.

10. Hardware.

Need to make decisions.
512Mb RAM is silly.
I would say 1Gb, or more likely 2Gb is reasonable.

11. Software.

Personally, I'd drop XP. But that's me.
Adding XP will add to support costs, and developer costs/time because have to set up tests for the environment.

12. Bridgemates

Code needs finishing.
Probably 1-2 months.

13. Swiss on Bridgemates.

This is new functionality.


So….

if time is an issue, probably 6-7 months, assuming I can hire the same people and they are available, and we get all specs on day 1. This is about the delay in the critical path items so seems about right. We can absolutely do interim releases starting on day 1 so another way of looking at it is release on Day 1, version 2.0 in 6 months.

if money is an issue, probably 12-18 months. Fewer developers, fewer have to learn code and more productive. The Mythical Man Month scenario. Again, release on Day 1. Part of the issue is the critical path movements issue. This assumes that the movements programmer is not going to be full time.

if I had to decide…., probably 9-18 months. My vote would be to minimize cost, minimize risk. Release on day 1. Increment releases as we go. Small number of developers, lots of time in the field.


We probably have various options

1) similar contract

2) contract, but WFH on new code

3) ACBL could lease/rent-to-own/license the software; I'd absorb the development costs for the new features.

4) don't use me at all.


I've been very accurate with the estimates for the different parts of the software, so am fairly confident with my estimates. Time would be longer is you used new developers because there is a learning curve.

If you chose to start from scratch, then you would basically probably design what we already have, but you are 7-10 man years behind in terms of the effort and $$ expended. The frustrating thing for me is that ACBLscore+/Bridgescore+ is ready for a roll-out - roll-out the features that work, incrementally add the functionality, add support capability etc. etc. Even if ACBLscore+ were completely ready now, ACBL would not be ready for a full software release.


I could spent a lot more time trying to create a project plan on what is needed to finish ACBLscore+, but I'm not sure it would be too productive. I can't give a solid time/money estimate as they are co-dependent. If you want some numbers, I'd say 9-18 months, $200K-$500K, excluding travel. Wide ranges but covering all scenarios. Note that this does not mean 9 months/$200K OR 18 months/$500K. Part of the reason for the wide range is that the functionality/integration is still not fully defined. The delivered version would be what Bridgescore+ (not ACBLscore+) does now, along with everything else complete, however I would put it specific CR wording. The range depends on who I can hire; I did a lot of training of the people I had; there is a learning curve for all new software. But we would start to release on day 1.

If ACBL were to do this without me, probably add 50-100% to the estimates. Someone has to get the level of background I have. It takes time.


Note that I have already delivered, at very little effort/time to me, most of the what ACBL is spending $600K to achieve this year. Using modern tools is so much more efficient.
March 5, 2015
You are ignoring the author of this comment. Click to temporarily show the comment.
In reply to Ping:

I hadn't noticed the Technology Minutes until this was pointed out.

I haven't talked to anyone from ACBL, nor had any official communication from anyone from ACBL about the Technology Committee. Remember, no-one from ACBL has ever asked me for a demo of ACBLscore+, or asked to see ACBLscore+ at a tournament; in fact they did the opposite and refused to let players see it run in Dallas in March 2014.

I did talk to Greg/Uday on a conference call a couple of weeks ago. Greg had never seen the software (as far as I could tell), he was installing it when we were on the phone. I don't think Uday has ever seen ACBLscore+. In both cases it was difficult to explain what ACBLscore+ does (or can do) because neither is a user of ACBLscore. So club finances, or tournaments finances, or internal interfaces within ACBL were difficult to explain over the phone.

I have not given either Greg or Uday a demo of ACBLscore+, it was only a phone conversation. Neither has asked. Before we had the call, I made sure that it was an open call, but that I may still restricted by some of the NDA in place so couldn't be completely open with them.

My estimate to complete was 6-7 months, not 18. This is because there was a 6+ month delay in some critical path items. I actually want to do a roll-out NOW, not in 18 months. Code is ready. Hey…. it was used in Gatlinburg last year, doesn't get a better test than that. Worked flawlessly.

This type of incorrect reporting (ACBL are reporting 18 months!) is indicative of the marketing effort against ACBLscore+.

Greg/Uday asked for an estimate, I'll post the contents of the email I sent to them after the phone call. I will remove Item #1 as this mentioned some individuals by name.

March 5, 2015
You are ignoring the author of this comment. Click to temporarily show the comment.
We rolled out some planned/possible Gatlinburg Goodies at the Pine Mountain Regional over the last couple of days.

Yesterday morning, we had 24 teams signed up for the KO. 10 had pre-registered. The good news was that these teams didn't even know it :-) So, minimal impact on the players.

This cut down on the name input time by almost 40%.

Swiss and KO are run using projectors. KOs are starting within 1-2 minutes of game time. We don't even use the rack for Swiss as a backup any more. Didn't even bother to print a Jeffreys Chart.

We've got some young (a relative term) TDs in the D7 area, so they were running the software, not me.
March 4, 2015
You are ignoring the author of this comment. Click to temporarily show the comment.
Before the ACBLscore+ project started, I provided ACBL with a Risk Identification/Mediation and Management document. 11 pages, 18 specific risks associated with the project and how to mediate and/or manage those risks.
March 4, 2015
You are ignoring the author of this comment. Click to temporarily show the comment.
Dennis - I suggest talking to a local TD to help you with creating series games. They are similar to a Side Game at a Sectional/Regional.

You can do it manually, but it is a bit of a pain.
March 3, 2015
You are ignoring the author of this comment. Click to temporarily show the comment.
Yeah… I may have had something to do with that….
March 3, 2015
You are ignoring the author of this comment. Click to temporarily show the comment.
To earn extra MPs for the players, consider having a series game.

I do not think that there is any additional sanctioning fee. So extra MPs for free.

See http://www.acbl.org/about-acbl/administration/acbl-handbook/i-calculating-the-awards/
It is under section G.

For example, if you have a Monday Morning 0-750 game, you could say that every Monday Morning in the month is part of a club series. At the end of the month, you have 4 (sometimes 5) games that make up the club series.

Figure out what method you want to determine the winners. You get to pick the method of ranking. For example, rank by number of vowels in player's last name multiplied by their house number.

Then work out the MPs won (I think you have to do it manually). If you have 12 tables, 5 Mondays in the month, someone plays in all 5 then they could win 1.2 MPs. (1.5 MPs if it was an Open Series).

You mention that you have 13 games each week, so you could have 13 separate club series each month.

Advertising a game as part of a series can help increase attendance. For example, if you had a rule that a player must play in at least 2 of the series games to win MPs, and they had a good game in Week 1, but did not show up on Week 2 or Week 3, you can let them know that they have a chance of extra MPs for Week 4 because they might win the Club Series.

I am surprised that more clubs do not make use of the Club Series.

It is a bit of a pain to set up within ACBLscore. Ask you local TD to show you how series games work (they do it a lot at tournaments)

Until recently (last year?), a club game could be part of many series. For example, if you have an Open game, every weekday morning, (M,Tu,W,Th,F), then you have 5 games a week, let's say 4 weeks a month. The old rules let you have a series game for every Monday, or every Tuesday etc. You could also have a series game each week, so the series could be all games during one week. It was even better than that. You could designate how you would set up your series. So you could also arbitrarily decide that all games held on the 3rd, 14th, 15th and 9th were part of a club series. The potential number of series games each month was astronomical. All extra MPs for free. Pick your favorite player, pick their best 2 games for the month, now figure out all the combinations of series games you can create (you did not need to pre-alert, or even tell the players it was a series game) for that month. For each series games, the winner gets 1.5 MPs. So your favorite player could now win over 1,000 MPs at the club for the month.

Anecdotally I heard a club tried to do this - there was nothing in the rules to stop them.

Sadly the rule got changed. You can now only use each club game once in a series.

However, it's still a great way of giving your players more MPs.

Here's the new rule (from the web site I mentioned):


G. SERIES GAMES FOR CLUBS

For Series games in clubs, four or more game sessions are required. The masterpoint bonus to the winning player shall equal .02 times the number of tables in play for all games in which he or she participated. This bonus cannot exceed 1.5 masterpoints for an open game or 1.2 masterpoints for an invitational game. Second place earns 75% of the award for first and third place earns 75% of the second-place award. Clubs may use their own methodology for determining winners. Examples are:

a. The number of masterpoints earned at the series games
b. The best percentage score for all series games
c. Award 4,3,2,1 for first through fourth place scores for each game and total such awards for the series to determine the winning individuals

A club may run a series game over any reasonable period, except each club game may only be a part of one series. The club manager may specify a minimum number of game sessions played to be eligible. Clubs may wish to consider a proviso that eligibility requires participation with a minimum of two or more different partners.



Here's the old rules:

G. SERIES GAMES FOR CLUBS
For Series games in clubs, four or more game sessions are required. The masterpoint bonus to the winning player shall equal .02 times the number of tables in play for all games in which he or she participated. This bonus cannot exceed 1.5 masterpoints for an open game or 1.2 masterpoints for an invitational game. Second place earns 75% of the award for first and third place earns 75% of the second-place award.

Clubs may use their own methodology for determining winners. Examples are:

a. The number of masterpoints earned at the series games

b. The best percentage score for all series games

c. Award 4,3,2,1 for 1st through 4th place scores for each game and total such awards for the series to determine the winning individuals

The club manager may specify a minimum number of game sessions played to be eligible.

Clubs may wish to consider a proviso that eligibility requires participation with a minimum of two or more different partners.

March 3, 2015
Nicolas Hammond edited this comment March 3, 2015
You are ignoring the author of this comment. Click to temporarily show the comment.
I'm not planning on barcoded ACBL #. I have some other ideas on how we can achieve this.

We'll see how many I can implement and test before Gatlinburg.
March 2, 2015
You are ignoring the author of this comment. Click to temporarily show the comment.
Vanderbilt second in 1979 is listed in http://en.wikipedia.org/wiki/Judi_Radin

I used the ACBL web site for details of the winners of NABC events.

For the Reisinger, I actually added the list of winners to the Wikipedia site on August 2, 2007. See http://en.wikipedia.org/wiki/Reisinger

When I added it, I had John Solodar, not Judi, so it would have been wrong on ACBL web sites as of 2007. It was corrected in May 2008 on Wikipedia by an unknown user.

March 2, 2015
You are ignoring the author of this comment. Click to temporarily show the comment.
Wikipedia may be a little out-of-date for the three ladies mentioned. I know because I created the pages for all three back in October of last year…

I used the data that I had access to, and created 100+ Wikipedia entries for bridge players (not just those 3). See
https://github.com/njhammond/generate_bridge_wikipedia_entries/

A problem I had when creating these pages was not knowing previous or alternative names. For example, when I created the pages, I did not know Judi Radin was formerly Judi Solodar.

So when creating the Wikipedia pages, the first attempt only listed Judi Radin's accomplishments.

After I find alternative names, I would re-run the tool that creates a player's Bridge Accomplishments from a static list of files listing winners and the tool would automatically merge all names someone has played as. So my revised list of Judi's accomplishments lists her Reisinger second place. See https://github.com/njhammond/generate_bridge_wikipedia_entries/blob/master/results/J/Judi%20Radin

There is always the problem of keeping static (not dynamically created) data current. Wikipedia is static data. I haven't updated the files I used to generate the Wikipedia data for the results from Providence, or any WBF events since October 2014. Unless someone is actively updating the Wikipedia pages after each NABC or WBF event, the data goes stale.

So… Wikipedia was as correct as I could make it back in October of last year. See http://bridgewinners.com/article/view/looking-for-wikipedia-volunteers/ for discussion of the plans.

Michael's Wikipedia entry was also out of date. His initial Wikipedia entry predated my October 2014 generated list. Michael's Wikipedia entry listed 15 NABC second place. My generated results had 18. I updated his Wikipedia entry. I'll let someone else add the ACBL HOF.
March 2, 2015
You are ignoring the author of this comment. Click to temporarily show the comment.
Semantically the ACBL has used the word ‘restriction’ to apply to events that have an additional requirement. A Youth or Senior is a ‘restricted’ (by age) event. A Mixed or Womens' event is a ‘restricted’ (by sex) event.

Some events are MP restricted; if this has an upper limit it is ‘limited’ (e.g. 0-1500 Pairs, 0-5000 mini-spingold). If it has a lower limit, e.g. LM Pairs (must be a LM to compete), I haven't seen a consistent terminology.

Open generally implies open to all; but some ACBL ‘Open’ events, e.g. LM Pairs, are MP restricted.

In the context of the original post, I believe the term Open was meant to imply ‘not-restricted’.
March 2, 2015
You are ignoring the author of this comment. Click to temporarily show the comment.
Just an aside:

Ultimately, and this would take some time, someone will create a DB of all hands ever dealt/played etc. so this can be easily looked up.

I've published software to map from a deal to a unique number. See https://github.com/njhammond/hand_record_utility

What's next is to start providing/calculating such a number for all deals.
March 1, 2015
You are ignoring the author of this comment. Click to temporarily show the comment.
There is a formula for converting ABA MP to ACBL MP (I don't have it in front of me). When you but an entry, tell the TD, they will help you convert.

When you turn in your entry you turn in your reported MPs. Bracketed is based on reported MPs, not on actual MPs.
March 1, 2015
You are ignoring the author of this comment. Click to temporarily show the comment.
I've already got the ability to look up a player name using multiple techniques (first/last/city etc.) in Bridgescore+.

Some copies of Bridgescore+ are installed on the Internet for each of the districts, but password protected. If the ACBL member database is installed, you can pull up any player, find out their MP etc.

It would be trivial to make this available to all players. However, this is against ACBL regulation.

So I already have the technology that you want, but ACBL rules prohibit it being used.
March 1, 2015
.

Bottom Home Top