Software Development in the Real World

With the ever increasing amount of technology in our lives, more and more of what we do involves software of some type, and this means an increasing need for people able to develop software in a reliable way.

The topic of modern software development is a wide, and increasing complex one, not only is there a huge variety of languages, tools, and target platforms there is also the choice between traditional waterfall style development and more modern agile practices. This means that to be successful a software development company would need to specialize in a certain area.

The most popular current areas of software development are almost perfectly aligned with what is popular in consumer electronics, with application development for mobile platforms like the iPhone and iPad leading the way. The other main area of growth for a software development company is in web sites and web applications, with more and more companies wanting to create or increase their on-line presence there is demand for software development using languages such as PHP, .Net, HTML and CSS. For web applications even more powerful languages are available such as Java and Ruby, these object based languages allow the type of applications that would normally have been written as native desktop applications to be just as functional when running in a web browser on almost any computer.

There are two main processes for developing software, the first, and traditional, way is what is referred to as waterfall, and it named like that due to the way that requirements start at the top of the process, these flow down into actual programming, then into testing and finally to release of the final product. The other main software creation process is a style called Agile development, and rather than being one process it is a collection of other smaller ideas and practices that are designed to make changes that occur during development more easily adapted to while also raising the visibility of the development progress to both managers and customers. While it would appear from their descriptions that agile development is always the best choice, there are specific cases where the comprehensive up-front is more important than the flexibility to adapt to changes, but these are normally limited to banking or military targeted projects.

For more info, visit