If you have 9 people (8 devs and one manager?) I would probably split them into 2 groups (manager + 4 devs). having daily stand-ups with 9 people will wreck your work schedule. Maybe have a big company meeting at "end of iteration" or something.
Agile can work if you really make sure you stick to the agile process. (contrary to the emphasis on people)
It doesn't have to be any specific agile process, it just needs to be followed.
Otherwise "Agile" just turns into anarchy.
Some key points:
Stand-ups should be short: (less than 5 minutes per developer). Do not let your stand-ups turn into architecture/debugging meetings.If a lengthy subject needs to be discussed, end the meeting and start a new one. Do not hold 2 people hostage for an hour if only 7 people needs to be in the room. If someone starts debugging/architecting in a standup tell them to stop! Have the actual stand-up standing up so that people are uncomfortable wasting other people's time. Set an alarm clock or something if you can. A daily stand-up that takes more than 15-20 minutes is a demotivational disaster. Make sure your team is committed to keeping it short. If someone is late, they should lose their "right" to talk at the stand-up. Avoid the 1 hour mandatory daily meeting at all costs. It will suck the life out of your developers.
Try to minimise the amount of people in a meeting. In my opinion meetings with more than 5 people have a high chance of turning into lectures.
That said, while the "standup" is a "holy time" that should be respected and revered by all participants, people should be enabled and encouraged to talk to each other. (They just don't need everyone in the room to do so [and if they do, they can invite them] )
Have a clear "definition of done": Something is not done unless it has been integrated into "master" and preferably tested by someone other than the developer that implemented it.
Make sure you reduce your "truck factor" buy forcing people to work outside their comfort zone: Very important to have at least 2 people working on every code base. This will also increase teamwork and team cohesion.
Have a well organised task tracking tool: Whether it's a bunch of post-its on a board, or a fully fledged task management S/W.:
-
Tasks should not get lost (forgotten or closed before they are finished just to meet an EOI)
-
People should be able to easily build a backlog (save for later)
-
At any time each developer should know exactly what he is supposed to be working on
-
There should also be a "next task" ready to go. Even if they get stuck