On 10/18/2016 07:00 AM, interest-requ...@qt-project.org wrote:
I'm totally against TDD because everything about it is a myth _and_
because it is a massive waste of developer time. Marketing types like it
because they can say "our software undergoes X-thousand tests with every
check-in" but those tests prove nothing. I recently stumbled onto a
"test" where a developer connected to the finished() signal of a post()
but not the error(). No matter how the post() exited they were marking
that chunk of data in the database as successfully sent. This was their
interpretation of the "story" and it resulted in significant data loss
because data on the device exists for only a limited number of days but
the back end has many TB available.
I'm not even on board for TDD, because tests don't help you against
interlocking-issues, data races, etc. and are only of limited use
against many others like dangling pointers, subsequent memory
corruption, UI freezing, etc.
Tests can only prove the existence of bugs, not the absence (Linus
Torvalds doesn't even use debuggers, for the same reason)
At the end of the day, you need competent developers for complex tasks -
no programming language, no framework, no SDLC will ever change that.
Let us not forget what NASA's venture into faster-cheaper-splat taught
the world about TDD.
Both groups worked from their "stories" relentlessly testing their
components without an overall architecture document.
There is _exactly_ one reason major companies are switching to Agile and
it has nothing to do with the viability of the model. Agile is the only
legal way to cheat accounting regulations.
This Statement specifies that costs incurred internally in creating a
computer software product shall be charged to expense when incurred as
research and development until technological feasibility has been
established for the product. Technological feasibility is established
upon completion of a detail program design or, in its absence,
completion of a working model. Thereafter, all software production costs
shall be capitalized and subsequently reported at the lower of
unamortized cost or net realizable value. Capitalized costs are
amortized based on current and future revenue for each product with an
annual minimum equal to the straight-line amortization over the
remaining estimated economic life of the product.
In years prior it was not uncommon to find major corporations with teams
of 40+ developers, many of them consultants, developing systems for
internal consumption. Large projects took (and still take) a minimum of
7 years to spec, develop, test, install and finally settle in. During
that entire time the development costs were booked as assets. Now, under
the 1985 accounting rules change, they have to deliver "something" to
book as an asset. This means they skip the design because the detailed
design required for a successful project of any real size cannot be done
inside of a quarter. Instead they bang out absolutely useless chunks
shifting the salaries of people not even remotely involved in the
process into the Agile project so it can all be booked as an asset each
Interest mailing list