What good book shoud I buy to learn Agile from scratch?
It seem that Agile for the solo developer is a good idea.
But how to learn it?
Is there any good book, web reference or course that a solo developer could start from?
Software Engineering Stack Exchange is a question and answer site for professionals, academics, and students working within the systems development life cycle. It only takes a minute to sign up.Sign up to join this community
If you have to purchase only ONE book.
Daily scrums can be lonely :(
Honestly, just be nimble. Agile has a heavy grounding in getting the most out of a team (standups, pair programming, etc). As an individual you're likely agile by your very nature - invent a process that works for you and go for it... just don't get entrenched by it. These development processes exist because managing IT projects across many functions is challenging... you're one man. You are the process.
I track my tasks using post-its, I have a CI server checking my code and I iterate until myself and (volunteering) testers are happy. I design first, code later. I try to set achievable goals for the week, and tend not to think about the project months in advance.
You'll get better results working in a way that you feel comfortable and have evolved into.
You'll be surprised how much of the agile process you naturally do.
You're going to have to adapt. I doubt there are any books that specify one developer or 100 developers. If you want to learn about Agile development, there's plenty on the internet. I browsed a few books at the local book store and didn't see the need.
Paired Programming - I happen to work at a firm with a lot of financial analysts that have been doing things in Excel that I convert to our application. I drag them over to look at my code occasionally and work through things with them. Saves a lot of back and forth.
We have plenty of people requesting software that can play all the other roles.
Stand Up Meeting - OK, this one freaks my coworkers out. Especially when I have to cut myself off for taking too much time. Just kidding, but I do keep a journal of what I did and what I'm going to do daily.
As far as the requirements gathering, planning, unit and acceptance testing, you can follow whichever methodology seems to make sense.
I tend to keep my 'sprints' to about a week.
I think Clean Code: A handbook of Agile Software Craftsmanship, is a great resource.
This book will make you a better developer, not only a better programmer. Surely a must read!
We use kanban at our work, and I've found it really useful - I think the idea of limiting yourself to a certain amount of work means you get more done.
One other thing kanban does well is categorizing where the work is up to - we use plan | build | test | distribute | done - each of these stages is defined and you need to work an item through the board - this helps to make sure that you haven't ignored testing, or that you've spent a bit of time planning and defining how to tests and demonstrate a completed feature.
One of the good things about agile is the accountability / transparency - so I'd let your clients know what you're working on, get them to agree to features they want added so that you keep yourself accountable to someone, even if they don't know the technical in's and out's.
If you want to practice Test Driven Development and Continuous Integration, which I find to be some of the best agile practices to follow I'd look at these books: