This is not only in programming, but in almost all business processes/departments.League sounds good initially. “It gets the best out of the people“.However, I have to make a very critical observations on this.
What are the competitive parameters (Kpis)? How are people or teams settled?These are, without exception, very flat-struck parameters. Just because reality is too complex. Many variables are very difficult to quantify objectively, so let’s get them away. As if they have no influence!
What situation do you get?The employees or the team initially start working on the greater purpose of the assignment. Until it appears that they are settled on things like cost and speed. It soon turns out that the bigger goal, a satisfied customer, cannot be met and that they run behind compared to the other team.
The solution?Fiddling! It is short on elegant solutions that make adjustments and expansions easy to implement. Instead of optimizing the code, they immediately continue with the following problem. Sample code from Stackexchange is inherited without customizations or enhancements. Documenting code takes time, so you do it very selectively, and with “borrowed” code you don’t do it at all.
Care and reliability (input validation, SQL injection, parameter type definition is forgotten (not enough place for a large number or with a large number it suddenly becomes negative), unused memory containing important data (e.g. Passwords) is left to the automatic garbage collection rather than clean it yourself and release it, it is quicker to reuse two or three places as previously written code instead of optimizing it and inserting it into a library ( If an adjustment is needed now, it should be done in two or three places), at least attention is paid to the ease of use because a good UI (User Interface) takes time, users are omitted, testing is To a minimum (goes faster and you’ll get fewer problems on your board that you need to solve quickly before the launch date.The only thing that counts is faster and cheaper than the other team. Healthy farming sense, anticipation of future expansions, quality and work ethic lose it from the beaten parameters on which they are settled.
This is as opposed to Agile.Here you work on a small module/functionality where the end user is directly involved. The bigger goal is always paramount. They work on a small, well-organized sub-project that has been optimised after one or two weeks and signed by the customer.
With two competing teams, you have twice as many employees who do not generate twice as much usable output.
What are people in the programming communities?
What is competitive programming?
As so often, one posites a (utterly unsensible) theorem that is right from no sides.And then ask why.