For a while I've wanted to write and document my opinions and beliefs on web development, the process, how it could improve and how to develop software in an always changing (agile) environment.
Keys to Organizational Success in Development Teams
Passionate developers deliver superior products
Passion. Passionate developers will be willing to go the extra mile to make sure they deliver a superior product. Instilling that desire to succeed and out perform is not something that can be taught or learned. Finding developers like this isn't necessarily hard, but keep in mind that hiring a passionate developer and having others with no passion can bring the whole team down even further. Passionate developers do not want to have to fight against stupid logic and flawed reason. They want their ideas heard, and discussed among the team and have management support those decisions. For the passionate developer, working with the incompetent can be extremely difficult. It is up to management to help smooth those edges and allow the team to still function.
Liberal management policies foster innovation
Having a trusting management is invaluable. Once you've hired your passionate developers you can take a step back and marvel and the amount of responsibility and control you've given them. Management should not be making decisions they should be approving them. There is a huge difference. In a perfectly Agile world, developers would make all technical decisions about a product and only leave management to simply review them. In a more real world scenario, developers should make decisions, and managers should approve of them.
Allowing developers to make decisions allows them to have the desired control over their final product, add more passion, and increases developer happiness. Developers will not forget the trust and responsibility you have instilled and them, and they will strive to make an excellent product for the user.
Don't force (trust) developers to manage their projects
Project management is essential to a successful Agile method. Good PMs will protect the sprint, and ensure that tasks are not added to the sprint without taking a task off. Failure to do so results in a sever developer overload.
Environments should fit the team
A healthy physical space to collaborate and create is imperative. Every team and group is different. Don't block them in to the status quo office space layout. Let them design their own. Does your team work best in a collaborative environment? Break down the walls and allow for that communication to take place. More independent work? Separate team members and have chat free days. Point here is know your team and allow them to do whatever inspires their work.
You absolutley need to get yourselves one of these. Nothing can work well on your team without a deadicated and passionate server administrator.