CodeBetter.Com
CodeBetter.Com
RSS 2.0 via Feedburner
           Do you Twitter? Follow us @CodeBetter

Darrell Norton's Blog [MVP]

Fill in description here...

The three software development environments

Robert Boque has an article called Understanding the Differing Goals of Software Development on developer.com. In it, he describes three different software development environments in general terms.

Corporate Development

Robert further divides this category into two subcategories, small and large corporation. The small company basically has developers change the application until it meets the business needs. Large companies have a much more defined, and rigid I would add, process, as well as numerous applications in production needing maintenance that take away time from developers, keeping them from working on interesting new work.

I would say that the difference is not in the size of the company, but in the approach. For example, some large companies can take a “small company” approach to developing applications, continuing to tweak the existing production application until it has been beaten into shape. Some advanced small companies might take a “large-company” approach as a result of experienced management.

There is also a tendency, in my own non-scientific observations, that corporate developers are mainly interested in things other than development. Non-software corporations are generally better places to work for quality of life, with more of a 9-to-5 schedule and less pressure to be constantly updating your skills.

Pure Software Development Companies

Pure software development companies have advanced software development practices and infrastructure. Problems at this type of company include standard Innovator’s Dilemma issues. “We’ve always had this type of architecture,” or, “We’ve always done it that way” are common roadblocks to change.

I’ve never worked in a pure software development company, but I would love to work for Microsoft, which falls into this category.

Consulting Company Development

Like Robert, this is where I feel at home. Consulting software development is marked by pretty strict adherence to the requirements, whether the approach is agile or not. Software development practices and processes are generally up-to-date, if not cutting edge.

I have little to say here because I thrive in this type of environment!



Comments

Darrell said:

The hobbyist programmer would not fit into this classification since it only includes what I would consider professional developers. That is, developers who program full-time for their job.
# December 1, 2004 1:17 AM

Jason Yip said:

I don't think the common roadblocks for change in the "pure software development" section are really Innovator's Dillemma (i.e., disruptive technology) problems. Sustaining technologies undergo radical change all the time but that's different from a disruptive technology.
# December 4, 2004 5:01 PM

Darrell said:

Jason Yip - I was referring more to the management mindset that takes place in regards to disruptive technologies. The same scenario plays itself out with new software development processes or technical improvements (ie, managed code vs. unmanaged code). The basic thing that happens is management sticks with the old ways instead of learning about the new.
# December 5, 2004 12:51 PM

Darrell said:

Jason Yip - but you're right, I definitely didn't make that clear, and without explanation it doesn't read correctly. I know what I wanted to write there, I just didn't write it. :)
# December 5, 2004 12:52 PM
Check out Devlicio.us!