This cannot be overstated and is generally underestimated by developers. Setting up a hotline infrastructure (actually it's two hotlines, one which is more like a helpdesk for customers of the app and one for the lab stuff) and operating it produces significant initial and ongoing cost.
Also they will still have additional ongoing cost for infrastructure (server operation, traffic) and cost for support regarding the still-to-be-performed process of interfacing the lab information systems of the 140-or-so labs in Germany with the Corona App Backend infrastructure (which is necessary to allow for the lab hotline and TAN stuff to become replaced by direct transmission of test results to the user via the app and its backend).
If those operating costs even just for the near/foreseeable future are included in the 20M€, I consider that a fair sum.
The efforts are definitely not free, but the price is entirely disconnected from the service provided. It is just the result of the usual enterprise companies that handle government contracts.
Such grotesque waste of tax-payer money should be made illegal, but the fact that these companies keep getting contracts is unfortunately reinforced by absurd government processes.
If we start just with development, we see that the the Github organization has 30 members. Unfortunately, the companies had absolutely horrendous source control and open source workflow practices (e.g. the android app's first commit is 35k lines), so we don't have a good history of all contributors, so for good measure let's double that to get an absurdly large team of 60 developers.
Considering the pandemic, let's say they all started working on the project in January. That means that the cost of the software developers themselves is approx 30 manyears, or 3 million EUR.
Translated the limited content and creating the webpages are not very expensive, but let's allocate a whopping ~100k EUR for that.
We need negotiation, design and security validation as well. Let's give that 5 people, 2 months at 4 times the already expensive senior developer salary. Expensive as hell, for no good reason, apart from to cover absurdities. ~200k EUR.
All these numbers are absurdly high (i.e. room for large errors), and we're "only" at 3.3 million EUR in cost. Need to add some profit margin for the company, but with more data (e.g. actual developers it took, how long they worked) the estimate could probably be pushed much lower.
Depending on how realistically they did that, that can be costly.
If this system stays up on its first day of use, 20 million might be worth it.
All of that costs a lot of money if you want to bring it to this level of polish.