I'm billed as the Windows Expert in my very small company, which consists of myself, a mechanical engineer working in a sales and training role, and the company's president, working in a design, development, and support role.My role is equally as general, but primarily I design and implement whatever programming on our product needs to get done in order for our stuff to run on whichever versions of Windows are current. I just finished watching a high-level overview of the Scrum paradigm, given in a webcast. My question is: Is it worth my time to learn more about this approach to product development, given that my development work items are usually given at a very high level, such as internationalize and localize the product. If it is, how would you suggest adapting Scrum for the use of just one programmer? What tools, cloud-based or otherwise, would be useful to that end?If it is not, what approach would you suggest for a single programmer to organize his efforts from day to day? (Perhaps the question reduces to that simple question.)
Scrum for a single programmer?
agile;programming practices;scrum;solo development
Learn Scrum: yes.  If only to learn about it to add to your general skill set. (but a flavor of it Scrum-ban is probably what you are looking for...)Scrum is a nice framework, but a core tenet is Iterations (Sprints) shall be fixed duration  I've never seen this work in very small teams that are more interrupt driven than not.  If you can truly sign up for and commit to work in a fixed time box (1 week?) then Scrum is a cool framework.  If you can't... then Scrum is nice to learn about because it has some good concepts that translate well to other things... like....Backlog - Scrum or not, keep a prioritized list of things you need to do.  I like Excel (or Google Doc Spreadsheet...)  You might like something else.  I'd keep a very small tool if you are a very small team.  (Spreadsheet >> Word processor because you can sort easily.)Separation of planning and committing - Plan in an abstract notation (points) and be consistent (8pts is about 2x a 4pt story and 4x a 2 point story)  When time to do the work re-look at the problem and sketch it out in hours.  Don't change the points.Commitment - be visible to others when you commit, and deliver on your commitmentsRetrospective - after you have delivered, reflect on what could have been done better.etc etc.Scrum is easy enough to understand that it might be a good starting point.  If you like it, I'd consider using the Scrum-ban variant - http://en.wikipedia.org/wiki/Scrum-ban#Scrum-ban.  Nothing else strikes me as so well documented with a reasonably active community to support it.  I'd love to also recommended Alistair Cockburn's Crystal methodologies (http://alistair.cockburn.us/Crystal+methodologies+main+foyer and http://www.amazon.com/Crystal-Clear-Human-Powered-Methodology-Small/dp/0201699478/ref=ntt_at_ep_dpt_3), but it involves way more reading and digging. Things like XP provide more details on specific practices, so I'd also say read the book: http://www.amazon.com/Extreme-Programming-Explained-Embrace-Change/dp/0321278658/ref=sr_1_1?s=books&ie=UTF8&qid=1304359834&sr=1-1Final reading advice: So long as you agree to the Agile manifesto, and follow the principles: http://agilemanifesto.org/principles.html  you should be in decent shape.Personal recommendation:     Adopt TDD (non-negotiable, IMHO)    Maintain a backlog (as per Scrum)        Always keep it sized and sorted on priority        Decompose things too big to do between interruptions int smaller chunks        Have someone else set/review priority (no two items get the same priority.  ever.)    Make your build environment able to build/test/deploy (to lab env) in 5-10min     Show your customers (internal and external) the results of finishing a story        Story isn't done till your customer agrees.    Pull Stories from the top of the pile and work on them as you complete the current story    Don't keep more than 2 things open at any one time.        Finish one distraction before starting another.    Take pride in your work and once a month show the team/company all the products/features you have completed.hope this helps