Continuous Improvement of the Death Star Database
"Database development is outdated, inflexible and boring." This opinion is not only held by the Sith Lord in charge of Death Star development. On the other hand, the amount of data we have to deal with has increased enormously and modern SQL is constantly among the top requested development skills. Terms like big data and data science are thrown around, but the data we talk about is often processed outside of the systems in which it is stored. Languages like PL/SQL or T-SQL, which are tailored to integrate perfectly and seamlessly with SQL, are considered outdated and not very attractive. Constraints, views, stored procedures or triggers are not well-known amongst developers or their usage is unclear.
One reason might be that database development as a whole is considered to be stagnant, stiff and far from modern agile development methodologies. These prejudices, held by his supervising Sith Lord, are becoming a challenge for the imperial developer tasked with modernizing the management software of the imperial army.
During this talk, the developer not only has to convince his Sith Lord that there are good reasons to process data where it is already stored but also needs to find solutions for improving and changing the database reliably, flexibly and continuously. Necessary preconditions for agile development like version control, isolated development environment, and unit-testing in the database are covered, as are special challenges like continuous updates via migrations and concepts of Evolutionary Database Design. All topics are demonstrated in an example project — Star Wars themed, of course.