Problems displaying this newsletter? View online.
SQL Server Central
Featured Contents
Question of the Day
The Voice of the DBA
 

Reflecting on the Mythical Man Month

At an event recently, I had a chat with someone after one of my sessions. I had been speaking on DevOps and ways to better structure your team and build software. After the session, one person asked me if I'd read The Mythical Man Month and if I felt we'd gotten a lot better at building software since that book was published.

I do think we have gotten better, way better, in fact. I caught another review of the book a while back from the Pragmatic Engineer. That review looked at what's changed in 50 years since the first edition, as well as contrasting the world today. You have to subscribe to read that one, but I'll give you a few thoughts from me on the book itself and the review.

Perhaps the most famous part of the book is the notion that adding more people to a late project makes it later. That doesn't always happen in other fields, where people can tackle separate tasks and get things done. Certainly feeding hay to horses goes quicker with more people. However, in software, things don't work that way. Perhaps this can work better today if we use microservices and separate architectural sections, but for any single piece of software, this often holds true. Even for microservices I'm not sure it's true because developers take time to get productive.

And yet, people still try to add more staff to projects in the hope they'll complete the application sooner.

Another great quote from the book is that programmers (developers today) can build castles in the sky. We can use our imagination to create, polish, and re-work in a way that isn't easy in the real world. That, along with the joy, complexity, and opportunity to learn, are why people program. The Pragmatic Engineer's view notes that there are other reasons, such as so much of the world uses software that people want to be a part of that, and the career is lucrative. I agree with that for sure. Working with code is a good job in many ways.

The book notes several challenges to building large systems, such as precise coding, lack of control, dependencies, debugging, and obsolescence from delays. Of these, some are true, but we have tools, like SQL Prompt, that help us avoid poor typing of code (and CI for checking). We also have moved to a much faster pace of delivering parts of a system and evolving them, so we are  often targeting just what our customers need, at an apparent faster pace. I'd also say that being able to deliver something quickly is important, as customers are quick to move on if you cannot.

One interesting part of the book that isn't quite so relevant is the discussion about why projects are late. While I don't know we estimate better, we certainly are better at getting smaller pieces of work done, which might hide some of the delays for larger features. We have so many more ways to track work and ensure we aren't forgetting what we have planned. There are also many more good managers today that empower their people. These are also the things in DevOps that have vastly improved how we build software.

Onboarding is a major issue in the book, as finding staff who knew tools/techniques/whatever was hard back then. There just weren't many people. Today, we struggle to onboard some people, but I'd like to think that it's not the same as in the past. However, I certainly think database techies in many cases haven't kept up or learned a lot of core software dev practices, such as version control, CI, and lots of things we bundle into DevOps. At the same time, I think we've burdened many people with full-stack development when they don't have a good understanding of core technologies, like databases and networking. I still think onboarding people quickly is a major advantage for any company that needs to build software and compete with others in their industry.

In the book, Brooks talks about the 10x engineer, a hotly debated topic in the modern software world. Are some people much more productive? I do think so, though if they are 10x as skilled as many others, I'd argue the others aren't earning their salaries.

If you've never read the Mythical Man Month, pick up a copy. It's worth your time as a developer or a DBA.

Steve Jones - SSC Editor

Join the debate, and respond to today's editorial on the forums

 
  Featured Contents
SQLServerCentral Article

SQL Automate - A DBA's Time-Saving Toolkit

Deepam from SQLServerCentral

SQLAutomate is a lightweight PowerShell tool that simplifies SQL Server deployment by automating both installation and post-installation configuration. Whether you're setting up one instance or dozens, this guide shows how to use SQLAutomate to save time and reduce manual work.

External Article

Index Scans and Table Scans

Additional Articles from MSSQLTips.com

There are several things that you can do to improve performance by throwing more hardware at the problem, but usually the place you get the most benefit from is when you tune your queries. One common problem that exists is the lack of indexes or incorrect indexes and therefore SQL Server has to process more data to find the records that meet the queries criteria. These issues are known as Index Scans and Table Scans.

Blog Post

From the SQL Server Central Blogs - T-SQL Tuesday #186 Roundup - Managing Agent Jobs

alevyinroc from FLX SQL

Thank you to everyone who contributed to this month’s T-SQL Tuesday!

Here’s a roundup of the posts.

Microsoft Power BI Quickstart Guide cover

Microsoft Power BI Quick Start Guide: The ultimate beginner's guide to data modeling, visualization, digital storytelling, and more, 3rd Edition

Site Owners from SQLServerCentral

Bring your data to life with this accessible yet fast-paced introduction to Power BI, now in color.

 

  Question of the Day

Today's question (by Steve Jones - SSC Editor):

 

Updating a Data API Builder Connection String

Can I use dab update to update a connection string in my Data API Builder configuration file?

Think you know the answer? Click here, and find out if you are right.

 

 

  Yesterday's Question of the Day (by Steve Jones - SSC Editor)

How Many Nested Triggers?

I have DDL trigger code that I'm working on in SQL Server 2022, but I am concerned that we might end up with multiple triggers firing and the response to the user is delayed.

If I want to check how many triggers have fired, or are nested, how can I do this in my code?

Answer: Check TRIGGER_NESTLEVEL()

Explanation: TRIGGER_NESTLEVEL() is a function that will tell you how many triggers have fired, either in general or for an object. Ref: TRIGGER_NESTLEVEL() - https://learn.microsoft.com/en-us/sql/t-sql/functions/trigger-nestlevel-transact-sql?view=sql-server-ver16

Discuss this question and answer on the forums

 

 

 

Database Pros Who Need Your Help

Here's a few of the new posts today on the forums. To see more, visit the forums.


SQL Server 2016 - Development and T-SQL
Insert bulk fails when Online Index Rebuild is done - Hi, We are getting issue of Insert bulk failed due to schema change of target table. We had created a job to check if fragmentation of table > 30% then to rebuild index online whilst bulk insert is happening in that table. We have around 3 transaction tables in which bulk insert happens and at […]
SQL Server 2019 - Administration
Urgent, Please Help. Named Instance Question - Hello all, I just installed a new named instance on SQL Server 2019 RTM-CU32.  The installation was successful but when I connected to the new named instance, it had all the databases and data from the default instance.  I looked at the properties of a couple databases and both instances (default and named) point to […]
Best/easiest way to import an SSIS package... - Folks, Looking for advice on the best way to import a package. I hope I'm in the right location! Apologies if I'm not. I inherited a system (Sql Server 2019) with an existing SSIS package. The installation notes indicate that you have to be on the server using SSMS v18. The installation notes indicate: 1. […]
balancing numa nodes - Can anybody advise on how i go about balancing threads to each node. As you can see from the below screen shot node_id 2 & 3 and 6 & 7 are offline (another query i ran shows them as OFFLINE VISIBLE). This is sql2019 STANDARD so limited to 48 online schedulers which are currently spread […]
Question about updating statistics - We have very large tables in our database, some even more 1 B records, so updating statistics will take many hours. Would it be a good idea to skip those tables that have ratio of modified records to total number of records less than 0.5 percent? That's because number of buckets in statistics histogram is […]
SQL Server 2019 - Development
SSIS raw file conversion - Hi, Does anyone know how to handle a raw data file where some rows contain carriage return characters? The problem is that certain rows, which should be treated as a single line, are being split into multiple lines due to embedded carriage returns in the file. The file was exported using isql from Sybase, not […]
Error converting data type varchar to float - Hi everyone I have a bunch of CSV files that I need to import into SS using BULK INSERT.  One file works fine.  The other fails.  Both have the same setup...there is one column that has no data in it so there is only a column header.  I used the logic from the CSV file […]
How to convert this to datetime format? - hi everyone I have a CSV that is storing date as "20180919T201400+0000".  I am using BULK INSERT to import the file.  How do I convert varchar "20180919T201400+0000" to a datetime format that SS can understand? My attempt: CONVERT(VARCHAR(25),REPLACE(ANNOUNCE_DATETIME,'"',''),126) AS ANNOUNCE_DATETIME Error: Conversion failed when converting date and/or time from character string. Thank you
telephones and sql - hi im pretty sure i could trigger a page on a pager if i had to from t-sql. but triggering a phone call doesnt appear to be as easy.   does the community know for sure?   perhaps of an approach that doesnt require i bring python , 3rd party software , maybe clr etc into the […]
Problem with CASE statement - Hi Everyone I have used CASE many times but not sure what I am doing wrong here.  SS won't accept it.  What am I doing wrong?  How can I fix it? SQL ALTER PROCEDURE [dbo].[WIP_UpdateEvents] (@FILENAME varchar(200), @RECORD_ADD_DATE datetime) AS DECLARE @FILEPATH VARCHAR(200) SET @FILEPATH = @FILENAME DECLARE @RECORD_ADD_DT varchar(26) SET @RECORD_ADD_DT = convert(varchar(26),@RECORD_ADD_DATE,121) DROP […]
Strategies and Ideas
Measure duplicating its value when non-conformed dimension attribute is included - Hi,   I have two fact tables (say FactA, and FactB), that are joined/shared by three dimensions (dimA/B/C) in-between the two fact tables (conformed dimensions). Fact A contains a list of finance agreements. FactB contains budgeted sales figures, so we have a figure for each month, for each product, for each sales channel. There is […]
T-SQL
T-SQL - except - add date column - SELECT         [A]       --,[Date]       ,       ,[C]       ,[D]       ,[E]          FROM [Database].[dbo].[Table]   where B < 1000     AND   (CheckDate >= getdate()-4 AND      CheckDate < getdate()) EXCEPT   SELECT        [A]   […]
T-SQL - except - add date column - .
SQL Server 2022 - Administration
Force Strict Encryption - SQL Agent fails - Hi, On my SQL 2022 (16.0.4195.2) test environment, I tried to enable Force Strict Encryption. To do this: - I generated a certificate using ps script :    $newCertificate = New-SelfSignedCertificate -CertStoreLocation cert:\LocalMachine\My -DnsName "DEV-SERVER.domain.local","DEV-SERVER" -FriendlyName "Cert_Test" -KeySpec KeyExchange -Provider "Microsoft RSA SChannel    Cryptographic Provider" -TextExtension "2.5.29.37={text}1.3.6.1.5.5.7.3.1" # Convert the report server password to […]
SQL Server 2022 - Development
High Availability Reversed - Force secondary unless failure - Hi I have sql2022 in H/A with a primary and a secondary server. My problem is that I have a query that I need to force it to run the secondary. But I need to point to the listener in case of failover, which is always pointed at the primary. Is there any kinda of […]
 

 

RSS FeedTwitter

This email has been sent to [email protected]. To be removed from this list, please click here. If you have any problems leaving the list, please contact the [email protected]. This newsletter was sent to you because you signed up at SQLServerCentral.com.
©2019 Redgate Software Ltd, Newnham House, Cambridge Business Park, Cambridge, CB4 0WZ, United Kingdom. All rights reserved.
[email protected]

 

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