Just get some basics right. It is not rocket science.
- Agile practices work when we are in creative work environments, often requiring individual skill , knowledge and creativity. There are no repeatable and simple steps to complete work.
- Create space and autonomy for people who are doing this demanding creative work. This kind of work requires a lot of concentration, and time. Avoid interruptions.
- Focus on learning. What ever makes learning faster, getting feedback faster, getting to the next level faster - do it. Usually this means small increments of work, learning from it, improving, and doing it again. Experiment, get to the solution, and then do it right. Hack when you start, but finish solid.
- Get the teams right. Cross functional does not mean a group of developers. It means designers, testers, developers, business people, sales, all in one package, in one unit. If you can't get most (if not all) of your work done from end to end with the people in your team, you are limiting yourself. Not always possible, but strive for it.
What not to do:
- Start with Scrum, and do Scrum one year after. Scrum is a starting point, not what you should end up with. Dogma kills.
- Expect Scrum etc. to solve your problems. People solve problems, people improve. Scrum remains the same, no matter how hard you try . If Scrum does not seem to work - don't use it. Instead, find what does work.
- Expect people to just jump in and get it. Sorry, I don't believe this is even possible, unless you are in a very coherent and cocooned environment with like-minded people. Most people don't care about Agile, Scrum or any gold plated buzz word. Just go and do something - don't try to sell Agile.