6

I am pushing my project over to Visual Studio Online in order to have some source control. I am developing this project by myself. I have never used Scrum, Agile, nor CMMI before, and the detailed description I read at http://msdn.microsoft.com/library/vstudio/ms400752.aspx is assuming a lot of knowledge. (It makes no sense to someone who doesn't already know what they are talking about.)

The best way for me to really learn Scrim or Agile or CMMI is by using them. But where to start? The above link does not help me there.

As a solo developer who is just looking for source control, should I start off with Scrum, Agile, or CMMI?

To take the opinion-basedness out of this question, I will make my official question: What is the difference between Scrum, Agile, and CMMI in Layman's terms? (But really, I just am trying to figure out where to start!)

8
  • 5
    Scrum, Agile and CMMI have nothing to do with source control. They are are software development methodologies that are most useful in a team.
    – Oded
    Jul 26, 2014 at 19:58
  • @Oded Thank you! Very helpful. I was unaware. But if I were to pick one, can you throw a suggestion my way please? (Visual Studio Online forces me to pick one)
    – Evorlor
    Jul 26, 2014 at 19:59
  • 3
    Not really - it isn't useful to suggest something like that off-hand. And frankly? As a sole developer, you probably don't need to adhere to these - personally, I find that going that way as a sole developer is counter productive.
    – Oded
    Jul 26, 2014 at 20:00
  • Was trying to familiarize myself with some professionally used stuff. But thank you for your advice :) I very much appreciate it. (Also, my choice is not option if I want to use Visual Studio source control.)
    – Evorlor
    Jul 26, 2014 at 20:07
  • recommended reading: Where to start?
    – gnat
    Jul 29, 2014 at 0:47

2 Answers 2

7

(Just FYI - I am cofounder of a company (Digité) that builds and sells enterprise software to a variety of technology organizations, so I have some background on these topics :-) )

Agile and Scrum are related, in that they are software development methods. Agile is an umbrella term for specific methods such as Scrum, Extreme Programming (XP) and others.

CMMI, on the other hand, is a quality management framework useful for large organizations that need to measure themselves in terms of their overall capability and maturity to demonstrate repeatable quality of software work they do. Organizations can use a mix of software development methods - Agile methods (such as Scrum/ Kanban/ XP/ BDD/ TDD/ etc), 'traditional' methods (Waterfall, Iterative) or a mix (Hybrid Agile), depending on their business needs. They can still use CMMI as an overall governance framework to measure and develop their software capabilities.

Definitely, as a solo developer, you don't need to worry about CMMI!

Agile methods in general give you the ability to build your software with less risk, greater chances of success and early warnings that what you are developing may not be the right product (as I am sure you know, it is not only important to build your product right - but also to build the right product). Even if you are a solo developer, you must have other people you (need to) interact with, especially your customer(s). Agile methods such as Scrum or Kanban give you the ability to deliver to them working software more often (in sprints of every 2-3 weeks), get their feedback more often, and take corrective steps more often than otherwise. Kanban helps you do it even more continuously. I'd recommend the following books, if you have not read any others so far -

  1. Scrum - The Power of Scrum - by Jeff Sutherland
  2. Kanban - Successful Evolutionary Change for your Technology Organization - by David Anderson. (If you need a basic introduction to Kanban, you can look here - What is Kanban?)

To answer your final question, I would recommend starting with Kanban. My assumption is that you already have some process you follow to build and deliver software to your customers. Kanban will help you map your existing process, help you "visualize" it - and help in delivering more often/ more continuously. And make improvements in your process to help you become more agile overall. If you do want something more formal and structured, you should adopt Scrum. It may require greater effort up-front - but don't worry too much about it's formal structures, instead focus on its fundamental intent of delivering working software more often to your customer.

Hope this helps.

Cheers!

1
  • As you talk about solo developer. I have seen a very big project done by just a few people with one guy being the chief guy doing almost 80% of the work. The project went very well. I guess if you have someone who is good at both design and implementation, low level details and high level abstraction, then methodology doesn't matter. In general, people like that are very rarely, so most companies follow methodologies and do the best with the human resources they have.
    – InformedA
    Jul 27, 2014 at 14:29
1

All of them are software development processes.

Scrum is very collaborative you discuss with your team constantly so everyone can be aware of what's happening. Helps to deal with problems efficiently as a team.

Agile can be many things. But when I have experienced it it has been very fast development with iterations. So you get the product working then incrementally make it better. Quickly so you can get feedback before taking the next step.

I haven't heard CMMI too much

enter image description here

1
  • I tried my best to help you out. Hopefully it at least gives you a simple understanding of all of them
    – tnek316
    Jul 26, 2014 at 23:39

Not the answer you're looking for? Browse other questions tagged or ask your own question.