One of the hardest aspects of Agile Software Development is the alignment of design and engineering. This is because design is usually seen as purely a creative exercise while engineering is formal and structured. Of course, most people who have been exposed to both the design and engineering aspects of software development understand that creativity and structure exist in both competencies.
Scrum outlines a "cross-functional" Development Team that, at the minimum, has all of the skills needed to move a feature from user story to working software. However, a higher level of "cross-functional" is "cross-fungible". That means that members of the Scrum are interchangeable and everyone can perform UX, visual design, software development, testing, etc. However, it takes most Scrum teams months to reach cross-fungibility. In the interim, tight integration between roles is the next best thing.
I constantly strive to help my Scrum Teams become more tightly integrated, especially by aligning design and engineering. Here is a good article about that: