Often referred to as waterfall, the old method of a static page being created by a designer, approved by a product owner, and then handed off to developers without further communication does not produce results in the best interests of anyone involved. The product owner doesn’t see the final product until it is all finished and ready for launch, much too late to make any significant corrections or alter the path of the project.
Instead, a more agile process, where product owners, designers, and developers all work in conjunction with one another to build value in a product throughout its development cycle, is needed. One where a small amount of work and constant feedback between all parties can build a large project out of small parts. One where the final project may not have every bell and whistle hoped for, but rather has an array of features that fulfill the maximum potential of the cost of development based on business and user needs. This is a large change in the way most individuals and organizations have done this type of work in the past, but by sticking to this process, a better product will be built in the long run, and those involved in the building will not be exhausted or burnt out by the process.
Well, today I’ve learned something new. Typing a query like this:
UPDATE `table` SET `field` = '1' WHERE `id` = '123'
I made a typo and entered the following:
UPDATE `table` SET `field` = '1' WHERE `id` - '123'
Yup. A simple dash (-) instead of an equal (=) sign. I know, I’m supposed to do a SELECT before, or use a transaction, or, at least, have a backup of the database – depending on which school of thought you follow the most. I didn’t have any of these. And once the query went in, there was little I could do.
Guess what the query does? I’m still looking into the exact consequences, but so far it looks like ALL records EXCEPT the one with id 123 have been updated.
Gladly I have some history revision tables from which I could restore most of the state. But this is scary dangerous anyway. I would expect a syntax error intuitively.