| SOFTWARE DEVELOPMENT | |
Software DevelopmentWhat is needed to develop software?To do software development among things that are need to be available even before the development process start are: people,process, and tools.People is the main asset for a software development company since compare to other industry such as manufacturing or agriculture,the final product - the software come from people ideas and visions. The hardware that is use can be very minimal - PCs are cheap today. Once you have the people, they need tools to help them develop the software. Just like a farmer will need tractor and havester to do their farm. Software development tools are different in a sense, since most of the tools themselves are also in form of softwares. For example - compiler is a tool that is use to translate description of software functionalities (in programming language) into the software. Compiler itself is a software. If you are developing compiler, then you can have a compiler that is creating itself...maybe different version of itself. Different type of software requires different tool to develop. Embedded development tools are different from set of web development software tools. If you are developing small software for your own use then once you have the tools you can start developing. But if you want to create significantly useful software then you will need a lot of people that work together to produce this single piece of software application. Managing hundreds or thousands of people to develop something need organization, it need discipline, it needs a well define process. For large software development we need well defined software development process. This process define what is called software development lifecycle or normally refer to as SDLC. Nowadays any student of computer science has to go through at least one semester of course on SDLC on top of other technical courses such as programming courses. What are different type of software development?Even development are defined by SDLC, but for each of different domain, different skills are needed to execute the phases define in the SDLC.The most commonly known software development domain is application software development. This is the process to develop software that run on PCs and also mobile devices.They are used to be called desktop applications, but with all the mobile devices around - they are no more referred to as desktop application. User interact with application software directly - such as spreadsheet and wordprocessor. With the existence of internet, new software domain is created web based software. Web software development requires almost the same skills as application software, but application software developer normally are closer to the local hardware, while web developers are quite insulated from the nitty-gritty details of the hardware since normally web application run on layers of other application that make it to be able to run on all sort of hardware without much of intervention from the developer. For example, if a web developer write a module using PHP language, he normally assume that the web server will execute his PHP code the same way on what ever platform it is. Another category of software developers that I refer to as the unsung heroes of software development - these are the embedded software developer. Embedded software development is a very niche domain, compared to web and desktop application development. This is because embedded software development is very tightly wrapped around very specific hardware. The operating system,the tools,the interfaces are all deeply interlinked to the software. In a lot of embedded development people even use proprietery tools and hardware. Embedded software developer need to really know their hardware environment...maybe just as well as the hardware designers themselves. We are also going to look one of the hottest topic in software development industry today - Agile software development. How Agile is helping software developed faster through more emphasize on flexible organisation and people. |
|
| Software Development (Home) | Sitemap | Contact Us | |