Problems displaying this newsletter? View online.
Database Weekly
The Complete Weekly Roundup of SQL Server News by SQLServerCentral.com
Hand-picked content to sharpen your professional edge
Editorial
 

Is Perfect Software Attainable?

I was in a social media discussion the other day where someone said “Perfection isn’t real, but progress is.” This started me thinking, is there really no perfection? Can you not actually create a piece of software that is perfect?

Of course you can. As long as your requirements are perfect, and the code does exactly what the requirements want, and you get everything exactly right, you can attain perfection. But let’s be realistic, perfection is rarely attained unless your requirements are akin to a school assignment that says: “Print out ‘Hello World’”

Most requirements documents contain far more than you can realistically accomplish, and modern computing is a complicated menagerie of technologies all strung together to meet complicated requirements to not only accomplish a task, report on that task, but also predict how many users will come back and do that task again one day (among other things). The concept of the MVP has taken over in the past few years, and if you haven’t heard the term, it is not as positive as the acronym sounds to any sports fan. It means Minimum Viable Product. It basically should mean to ship the minimum product that will do something positive for the customer and get them closer to that perfection they wanted.

But how do you know what the customer wants? Will you ever give them what they want if you don’t attempt to capture what their “perfect” solution would look like? This is why perfect must be a real concept, even if it is rarely attainable (and I will freely admit, rarely understood even well enough). If you don't even try define what the perfect solution is, what are you targeting? Mediocre? Just OK? Good enough?

Determining what perfect is, is a lot safer and easier than trying to nail down good enough. If you try to define your customer’s desires in the terms of “this is good enough” without getting an idea of what their perfection is, as timelines slip and features fall off, you are negotiating against what they had already said was their bare minimum good enough, rather than their actual desire for a perfect solution. So, by definition, you end up with an MVP that isn’t good enough and may not even be minimally viable. Part of defining perfection is to tag parts of the requirement as necessary versus the ideal that you are wanting from the perfect solution.

Last thing… perfect changes over time. The reason for iterative development, defining mere slices of the overall perfection, MVPs, good enough solutions, and all that is simply the problem of time. Back in the dark ages of waterfall development, people spent lots of time defining perfect, but by the time the code was being written, and certainly near that glorious final release… perfection had often shifted for one reason or another and the customer wanted something else. Sometimes entire generations of hardware and software would occur, sometimes the process was so slow the problem you were trying to solve had already failed.

Perfection is certainly achieved on rare occasions, but for the most part, it is only a hypothetical target that you know is somewhat unlikely and likely to change even if you did attempt to attain it. It is just that without that target, you are shooting for imperfection and that is a slippery slope.

 

Louis Davidson (@drsql)

Join the debate, and respond to the editorial on the forums

 
The Weekly News
All the headlines and interesting SQL Server information that we've collected over the past week, and sometimes even a few repeats if we think they fit.
AI/Machine Learning/Cognitive Services

Custom Metrics for Evaluation in LLM (Azure AI Studio)

From tsmatz

In this post, I'll show you how to use your own cu...

Thriving in Tomorrow's AI Landscape: Balancing Innovation with a Privacy-Centric Approach

From IT Pro - Microsoft Windows Information, Solutions, Tools

Companies that prioritize privacy as a foundational principle of AI will safeguard consumers while enabling sustainable AI growth, writes LiveRamp VP of Product Matt Karasick.

Introduction to OpenAI and LLMs – Part 2

From SQLServerCentral Blogs

My previous blog post on this topic was Introducti...

Administration of SQL Server

Why Query Store Switched to Read-Only Mode

From Curated SQL

Chad Callihan tells us: How often do you evaluate your Query Store configuration? Have you ever had Query Store configured in READ_WRITE mode only to…

Exporting Extended Event Results to CSVs and Tables

From Curated SQL

David Fowler comes in with a quick tip: This is something that I’ve seen pop up a couple of times on various forums recently, how…

How to give developers access to Query Store

From SQLServerCentral Blogs

Let’s have devs look at their own query performa...

Why Did Query Store Switch to READ_ONLY?

From Callihan Data

How often do you evaluate your Query Store configu...

SQL Server Diagnostic Information Queries for June 2024

From Glenn Berry

Introduction These are my SQL Server Diagnostic In...

Some Questions I’ve Answered Recently On Database Administrators Stack Exchange

From Erik Darling Data

Fun and No Profit Normally I don’t have many que...

Two Tweaks for Faster Backups with Ola Hallengren’s Scripts

From Brent Ozar Unlimited

Ola Hallengren’s free maintenance solution is wi...

Azure CosmosDB

General availability: Multi-select delete in Azure Cosmos DB with Data Explorer

From Azure Updates

Delete multiple items at once now in Azure Cosmos ...

Public Preview: Azure Cosmos DB continuous backup for accounts using Azure Synapse Link

From Azure Updates

Now Azure Synapse Link for Azure Cosmos DB custome...

Azure SQL

Azure SQL Database Availability metric | Data Exposed

From Azure SQL

Learn more about monitoring database availability for Azure SQL Database using the SLA compliant availability metric.   Watch on Data Exposed    Resources: Azure SQL DB availability portal metric Monitoring Azure SQL Database with metrics...

Data Visualisation

#SWDchallenge: make a funnel chart

From Storytelling with Data

Google image results for the keyword ‘funnel cha...

Introducing the 3-30-300 rule for better reports

From SQLBI

This article describes a simple approach that you ...

is your point clear?

From Storytelling with Data

Have you ever found yourself staring at a graph or...

when the background isn’t white

From Storytelling with Data

The majority of graphs and slides you see from us here feature plain, white backgrounds. While that’s a typical situation when communicating, it certainly isn’t the only one. At...

Database Design, Theory and Development

Fuzzy Search and Levenshtein Distance

From Curated SQL

Hoen Nguyen explains a couple of terms: In the wor...

Book Review – Fundamentals of Data Engineering

From SQLServerCentral Blogs

This book was recommended by some of my colleagues...

ETL/SSIS/Azure Data Factory/Biml

Configuring SSIS with Environment Variables

From Andy Broadsword

Yep it’s more SSIS again this week. Here we’ll...

Microsoft Fabric ( Azure Synapse Analytics, OneLake, ADLS, Data Science)

How to get the TopN rows using Python in Fabric Notebooks

From FourMoo

How to get the TopN rows using Python in Fabric No...

Oracle/PostgreSQL/MySQL/other RDBMS

Exploring MVCC and InnoDB’s Multi-Versioning Technique

In the realm of relational databases, MySQL stands out as one of the most popular choices. Maximizing its performance is crucial, especially in highly concurrent environments where multiple transactions compete for resources. InnoDB, the default storage engine for MySQL, employs a technique known as Multi-Version Concurrency Control (MVCC) to address concurrency needs and enhance performance. In this exploration, we delve into the intricacies of MVCC, especially how it is implemented, understanding its components, its role in transaction isolation, and how to optimize and manage it for peak efficiency.

Emulating SQL FILTER with Oracle JSON Aggregate Functions

From Java, SQL and jOOQ.

A cool standard SQL:2003 feature is the aggregate ...

Ashutosh Bapat: SQL/PGQ and graph theory

From Planet Postgres

The story goes almost two decades back. I was studying computer engineering in College of Engineering Pune. Prof Vinayak Joshi had recently joined COEP and had research interest in discrete...

semab tariq: Performance impact of using ORDER BY with LIMIT in PostgreSQL

From Planet Postgres

Learn how the combination of ORDER BY and LIMIT clauses in PostgreSQL affects query performance, and discover optimization techniques to maintain efficient database performance and fast query responses. ...

Ryan Booz: PGSQL Phriday #017

From Planet Postgres

Invitation from James Blackwell-Sewell I had t...

Performance Tuning SQL Server

Plansplaining part 31 – Dynamic cursors

From SQL Server Fast

We’re already at part 31 of the plansplaining se...

SQL Server Security and Auditing

Disable the sa Login [30 SQL Server Security Checks in 30 Days]

From StraightPath Solutions SQL Blog

This post is part of our SQL Server security blog ...

The CONTROL SERVER Permission in SQL Server

From Curated SQL

Jeff Iannucci has a series on security in SQL Serv...

Role-based Access Control In SQL Server, and You

From StraightPath Solutions SQL Blog

This post is part of our SQL Server security blog ...

Auditing SQL Server – Part 1 – Discovery and Documentation

From Simple Talk

Inheriting a server, whether as an inexperienced u...

The securityadmin Role in SQL Server

From Curated SQL

Jeff Iannucci talks about a role that might as wel...

Ethical hacker releases tool to exploit Microsoft's Recall AI, says it's not 'rocket science'

From All about Microsoft Blog RSS | ZDNet

Microsoft's Windows Recall AI feature hasn't launched yet but it's already a target.

Leaving the SQL Server Public Role Be

From Curated SQL

David Seis has some advice: Roles play a crucial p...

Always Encrypted and Secure Enclaves

From Curated SQL

Pieter Vanhove explains what secure enclaves are a...

SQL Server Logins: The Bad, the Worse, and the Ugly

From StraightPath Solutions SQL Blog

This post is part of our SQL Server security blog ...

Security News and Issues

The signs of a new era: Prompt Injection

From Simple Talk

More than 20 years ago, I wrote a book about SQL I...

Hack That Crippled UK Hospitals Highlights Growing Threat to NHS

From IT Pro - Microsoft Windows Information, Solutions, Tools

The latest attack targeted a “life-critical” supplier to the UK’s NHS.

After brutal critiques, Microsoft Recall will get these major privacy and security changes

From All about Microsoft Blog RSS | ZDNet

Stung by criticism from security researchers, Microsoft today announced major changes to a key feature of its new Copilot+ PCs. The changes include enhanced encryption and new ways to...

T-SQL and Query Languages

Effective Strategies for Storing and Parsing XML in SQL Server

XML is a common storage format for data, metadata, parameters, or other semi-structured data. Because of this, it often finds its way into SQL Server databases and needs to be managed alongside other data types. Even though a relational database is not the optimal place to store and manage XML data, it is often needed due to application requirements, convenience, or a need to maintain this information in close proximity to other app data. This article dives into a variety of common XML challenges and the functionality included in SQL Server to help make managing them as simple as possible.

Snake draft sorting in SQL Server, part 2

In my previous post, I showed how to borrow a snake draft concept from fantasy football, or a packing technique from the shipping industry, to distribute different portions of a workload to run in parallel. In the previous example, we determined a distribution order for databases based on size – though you can rank by literally any attribute (or combination of attributes). Once we’ve determined how to build out this order, we may want to store that data somewhere because, sometimes, the source of that data is not directly accessible.

Effective Strategies for Storing and Parsing XML in SQL Server

From Simple Talk

XML is a common storage format for data, metadata,...

Announcing UNISTR and || operator in Azure SQL Database – preview

From Azure SQL

We are excited to announce that the UNISTR intrins...

The Lighter Side

T-SQL Tuesday #175: Old Tech, New Tech, Bold Tech, Blue Tech

From AndyLeonard.blog()

Microsoft Build 2024 was just last month (at the t...

The code that lived in my head rent free for 30 years

From Ayende @ Rahien

I have a piece of code that has been living, rent-free, in my head for the past 30 years or so.In middle school (I was 12 - 13 at...

Tools for Dev (SSMS, ADS, VS, etc.)

Build REST API with Azure Data API Builder (DAB)

From MSSQL Tips

This tip will guide you through creating your firs...

Web

Sails.js for web development

Sails.js is a robust web development framework that runs on top of Node.js and uses JavaScript’s asynchronous features to speed up the production of applications. Its adherence to the Model-View-Controller (MVC) architecture, which simplifies feature separation and code organization, is a critical component of its attractiveness. Rapid application development is facilitated by Sails.js’ pre-built components and user-friendly APIs for developers. The framework is robust in scenarios involving real-time communication, which makes it perfect for interactive applications. Its Object-Relational Mapping (ORM) technology facilitates smooth integration with different databases by streamlining database interactions. Sails.js abstracts complexity and provides flexibility and scalability for projects of any size, from small-scale apps to large-scale business solutions, freeing developers to concentrate on application logic and user experience.

 
RSS FeedTwitter
This email has been sent to {email}. To be removed from this list, please click here. If you have any problems leaving the list, please contact the webmaster@sqlservercentral.com. This newsletter was sent to you because you signed up at SQLServerCentral.com. Note: This is not the SQLServerCentral.com daily newsletter list, and unsubscribing to this newsletter will not stop you receiving the SQL Server Central daily newsletters. If you want to be removed from that list, you can follow the instructions on the daily newsletter.
©2019 Redgate Software Ltd, Newnham House, Cambridge Business Park, Cambridge, CB4 0WZ, United Kingdom. All rights reserved.
webmaster@sqlservercentral.com

 

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -