One thing I see a lot of GMs do - both veteran and new alike - is call for too many rolls. I don't blame them. Most game systems are very clear about how difficult something is, and the concept of rolling for success/failure is easy to grok. What is harder to grok is the concept of when success/failure is meaningful, and this is where a simple way to improve the flow in your game - keeping everyone in character longer and keeping the game going - can come from simply reducing how often you call for dice rolls.
How do you determine if success or failure is meaningful, ask yourself this question: what happens if the roll fails?
The easiest example for this is a PC trying to pick a lock. What happens if they fail? If your answer is "nothing" or "they don't open the lock" then the roll was likely not for a meaningful success or failure. After all, what is stopping the person from trying again? What is stopping them from sitting there for three days and trying and trying and trying until they get it if by no other means that complete happenstance?
Videogames solve this problem by just saying "you can't pick this lock." Behind the scenes though it is done by the difficulty being higher than you can roll, it requiring a higher level of skill then you have if nothing is rolled, or just being arbitrary 'you get one shot and that is it." You can do this in your game, but then what happens when a key plot item is behind a roll and it fails?
D&D tried to solve this problem with the concept of "Taking a 20." Where if there was nothing to rush or pressure the person, they could take 20 times as long to resolve a roll but in return act as if they rolled a natural 20 on the die. The idea was you made 20 attempts, and got every possible result on the D20 in the process. It worked well.
5e tries to simplify this even further with "passive scores." Your passive score for a skill is 10 + your skill modifier. If there is no particular pressure to perform a task, you can just assume a character can do it automatically if the difficulty is below their passive score. Further, a character gets the benefits of their Passive Perception without having to roll - but must take an action to use their perception skill with a roll.
Both of these solutions are working towards the same point though: when there is no risk of failure, just don't have there be a dice roll. The rogue could literally sit for days working on that lock? Great. Don't roll, just say they pop the lock. The smith has a near endless supply of iron and time to make a sword? Great, they make the sword.
Assume basic competence, let the players succeed when the situation is passive, and keep the game rolling.
An Alternative Method
This is more a side note, but sometimes I do call for rolls when there is no real threat to failure. Only, I'm not looking for success or failure but rather for how long it takes or how expensive (in whatever way) the task ends up being.
That rogue with the lock? On a good roll they get the lock on an early attempt. On a poor roll, they have to sit there for a while working on the lock.
Same for the smith making a sword.
Same for the general trying to come up with a plan for their supply train to get to them.
Note though, they're not rolling for success or failure. I've changed the stakes to time and cost.