Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I've heard about software and apps going into Generation 1.2 or 2.6, is there an actual methodology behind this? or it's more of a marketing thing?

Currently we are using Scrum as our methodology in agile software development and it's based on sprints, but I haven't been able to find any information detailing what's actually a generation in software development (neither on Agile based methodologies and non-agile).

http://en.wikipedia.org/wiki/Sprint_%28scrum%29#Sprint

share|improve this question

migrated from stackoverflow.com Feb 15 '12 at 22:18

This question came from our site for professional and enthusiast programmers.

3  
"Generation 1.2 or 2.6"? Can you provide some context for where you've seen this? A quote or a link or a reference? –  S.Lott Feb 15 '12 at 22:28

2 Answers 2

up vote 3 down vote accepted

Generally speaking, this is a term that rarely applies to software as we tend to think of our product lines advancing through versions and releases rather than generations.

That said, a software generation is much like a hardware generation, where the underlying technologies all play a part in defining the generation of the software. To give you a really rough idea about what I mean, let's use the Windows operating system as an example. You could say that every 2 or 3 versions of Windows is a generation based on the technologies that make each few versions stand out from the Windows versions that came before.

Off the top of my head (and I may not be remembering all of this correctly), Windows Generations might be roughly described as follows.

  • Generation 1: Windows 1 - 2
  • Generation 2: Windows 3 - 3.11
  • Generation 3: Windows 95, 98, ME
  • Generation 4: Windows NT, 2000, XP
  • Generation 5: Vista, Windows 7

That's probably an oversimplification and misses lots of variants, but in terms of technologies, interfaces, hardware compatibility and so on, each major advance (and effectively each near total re-write) would be a distinct generation.

Using the term "Generation" can be helpful if you want to look at things historically, or to define when your development should bypass all of the refactoring and other "longevity and compatibility measures" you might take to extend the lifetime of your products, however the reality is that keeping track of these things is more useful to the marketers than your average developer, and even then, the marketing spin probably won't have as much impact with your customers as simply bumping the Major version number up +1 on your product and listing all of the new features.

share|improve this answer
    
+1. If i would have written the answer would be exactly on the same line. –  Dipan Mehta Feb 16 '12 at 4:07
    
This captures the heart of it. Generational changes involve the surrounding ecosystem, and potentially interoperabliy and backwards compatability. Sometimes generations are intefcompatible, but if you lose backwards compatability you are definitely in a new generation. –  MathAttack Feb 16 '12 at 11:55
    
Great answer. Thanks a lot. –  Osvaldo M. Feb 16 '12 at 14:36

It's a marketing term, mostly. Consider 3G and 4G on your cell phone. Most phone companies were selling so-called 4G phones before such a thing even existed.

In other words, it's intended to confuse you into thinking you're buying something new and improved. Think: Superviederflagen XLS 4D.

See also Does 4G Exist?


tl;dr: Most serious software development organizations use versions.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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