In simple terms, impediments are anything that can restrict, slow down, hinder or obstruct the agile/scrum team, specifically the development team from reaching their iteration/sprint goals (an objective agile/scrum teams want to accomplish within the sprint timelines). You can think of impediments as hurdles that runners have to cross while running a race. Just like runners who need to jump over the artificial hurdles so that they are able to reach the finish line sooner, impediments are situations that need must be dealt with by the development team so that they can meet their sprint goals.
Examples of impediments are plenty such as management interference, shortage of skills or knowledge within the team, lack of adequate infrastructure, sickness of team members with rare specialized skills, unavailability or absence of product owners, unresponsive stakeholders, etc. In essence, anything that the development team cannot solve themselves is regarded as an impediment. This is important because in many situations development teams possess the know-how, capabilities, and authority to remove those obstructions themselves. They may just need to apply some creativity.
When faced with an impediment, development teams can always ask themselves "Is this something that we can solve on our own? Before we give up and take it to the scrum master, have we tried everything possible to solve this situation?".
Therefore, before obstructions as classified as "impediments", the development team must consider addressing them internally. In case they fail to do so, they can then escalate this to the scrum master and seek their help in solving the matter.
Interested in becoming a Scrum Master or Product Owner? Join our "Crack the Professional Scrum Master/Product Owner Training in 4 hours". Get an obligation free quote here.