Over the past couple of years I've read a lot about the facets/tools of agile development whether it be TDD, pair programming, or Scrum.
I even became a certified Scrum master, the course was great, Mike Cohn was great, the other students were interesting and i learnt a lot, some of which I've actually been able to use ;^).
But there was something that bugged me on that course and i think it was the fact that i was the only person there that worked in a multi disiplined IT team, and note the important word here, "IT" not "development". I work in what was once a v small insurance startup (we've recently been bought out). With a team of between 8-12 with skills split over areas such as software development, systems administration, tech/desktop support, helpdesk, business analysis, service delivery, project management
and where the developers are involved in pretty much all of the above. In such an environment its impossible, impractical (and inadvisable) to implement scrum in such a situation, and thats fine, Scrum is an agile software development methodology. But wouldn't it be good if there was an agile holistic methodology for small IT teams?
In my experience It is difficult for small IT teams to deal with things like software development/service delivery/project management without opting to either shoehorn a bastardised waterfall/ITIL/prince2 implementation into the department, or worse not introduce any formal process. Methodologies such as ITIL or prince2 have an overhead
attached to them. For the many companies that run with a small IT department I think there is a need for a lightweight framework for managing a small multi disciplined IT department. To give it a name it'd call it "Guerilla" IT. I like the analogy this term evokes because when you work in a small IT team with limited resource (whether it be people, time or money) you have to choose your battles. The team needs to be responsive, agile and efficient and you can't afford to focus resource on a single battle because the war is on many fronts.
So what would be the aphorisms/maxims that would define Guerilla IT? (here are some suggestions, when i get some time i'll refine, describe and add more):
-(aim to) Do the right thing first.
- Outsourcing is a hammer. Don't be proud, use outsourcing as a tool. Outsource skills not knowledge. (use every interaction with outsourced resource as an opportunity to make yourself less reliant on them.)
-Automate everything. If you do a task (administrative or development) more than once a month then its a candidate for automation