Backlog is a list of features or task in software development that are supposed to be delivered, backlogs are maintained either by teams (team backlog) or product owner (product backlog). A backlog is always prioritized, with the most important tasks at top and least important at the bottom.
Its important that someone (team, department or roles) have responsibility over the backlog. Both what is added to the backlog and how it should be prioritized.
An backlog should be the only way to get work done by development teams, if the backlogs is used as a single point of entrance its easier to shield teams from unplanned and non-prioritized work.
A backlog can consist of different type of work, like bug fixes, new feature request, technical work and team work improvement. But don´t mix to many different type of work. It can be both hard and time consuming to prioritize and maintain a backlog with to many tasks.
An backlog should be limited in size, either the owner set a maximum number of task or maximum time it would take to finish the whole backlog.
There is also important to define and inform of backlog criteria. What is the rule to get something on a backlog or get it out of the backlog. Criteria could be size, customer value, enough details. Se this as backlog redo definition. This is important for the whole value process. Teams will have sprint redo criteria so the backlog output must match it.