The software development process is the focus of this category. In software engineering, this refers to the steps that are involved in taking a project from an idea to the completed software application.
First, it is important to know that there are three basic types of software: system software, programming software, and application software.
System software provides the core functions of a computer, and includes operating systems, disk management, utilities, hardware management, and other operational necessities. For the purposes of categorization here, we have another category for System Software, parallel to this one, although the development process of system software may be discussed here.
Programming software refers to software tools for programmers, such as text editors, compilers, linkers, debuggers, and so on. While the development of such tools is an appropriate topic for this category, much of this information is covered in our Programming and Text & Code Editors categories.
When most people think of software as a product, they are thinking of application software. Often known as programs, application software is used to help users perform tasks. Examples of this type of software include office suites, data management software, graphics editors, cybersecurity programs, and many others. Most of the programs that computer users purchase on CD or download from an online retailer are examples of application software, and this would include those designed for desktop computers, tablet devices, or mobile phones.
A fourth type of software, not generally seen by end-users, is embedded software, which is used to control machines and devices that are not commonly thought of as computers, such as automobiles, industrial robots, and appliances connected to the Internet of Things.
Software development is typically accomplished by programmers, software engineers, and software developers, whose roles often overlap and interact in many ways. The number and variety of people involved will depend on the size of the software to be developed, as well as other variables like time and budget.
Also known as coders, programmers write the source code that programs computers for specific tasks, using one or more programming languages or scripts. Some software programs are developed by an individual who assumes all of the necessary roles, generally as a private project, but most commercial software is developed by multiple people. In such cases, programmers will usually interpret instructions from software developers and engineers, using their programming skills to carry them out.
Software engineers apply engineering principles to design software and systems to solve problems, using modeling language and other tools to design solutions that can be applied in a general way, so that the final product can serve multiple uses rather than solving a single problem for a specific client or instance. Software engineers apply scientific principles of software engineering to the design, development, maintenance, testing, and evaluation of computer software, and are generally involved in large-scale projects.
The role of a software developer is less formal than that of an engineer, and is likely to involve working closely on specific project areas, including writing code, but they also drive the overall software development process, working across teams in the development, testing, and maintenance phases.
The actual development process may be informal, in the case of private or even collaborative projects, but software development companies typically have an established process of distinct phases, most of which have names.
These methodologies or processes might be known as Agile development, Lean development, Waterfall development, Spiral development, and Offshore development, as well as several others, with new ones likely to follow.
Other practices that may be used in software development include continuous integration, prototyping, incremental development, and rapid application development.
Several development frameworks have evolved over the years, each with strengths and weaknesses, and a single methodology is unlikely to be suitable for use in every project so, while a company may have a preference for one practice or methodology, the one chosen will depend on the nature and demands of the project, the amount of time given to the project, and budget considerations.
Topic related to software development, or to the software designed for use in software development, are appropriate for this category, while software development companies may be represented in the appropriate subcategory, and/or the Local & Global category representing the company's location or base. In most cases, smaller companies will benefit more from a local listing as they tend to serve local clients.
Categories
@System Software@Text & Code Editors@Programming | Development ToolsScripts & CodeSoftware Development Companies |
 
 
Recommended Resources
The non-profit membership organization was formed in 2001 to promote the concepts of Agile software development, creating the Guide to Agile Practices in 2011, renamed Agile Glossary in 2016. Individual and corporate memberships are available, offering various benefits, while anyone can view the organization's blog, member-submitted books, experience reports, the Agile Glossary, conference keynotes videos, industry analyst videos, and podcasts. Member initiatives are listed and discussed.
https://www.agilealliance.org/
Offering test software for ATA devices since 1995, the company also offers test software for NVM Express, Serial ATA, and Parallel ATA, serving customers throughout the world. Specializing in software, ATA-ATAPI does not manufacture, sell, or support any hardware products or provide OS drivers for hardware products. A background of the company and details of its products and services is presented, including links to organizations publishing I/O interface and storage device standards.
http://www.ata-atapi.com
From Horde, Chora is a tool for viewing code repositories that are managed through CVS or Subversion source control systems, the goal being to provide a high degree of integration with CVS, SVN, and other Horde web-based tools. Its authors are acknowledged, and program documentation is available for viewing online and distributed with the program files. Other resources include development notes, the current status of the program, a source code.
https://www.horde.org/apps/chora/
Now part of GrapeCity, a software development company, which acquired ComponentOne in 2012, the company produces the ComponentOne Studio Enterprise, Ultimate, and Individual Edition, a flexible toolkit for UI controls for .NET, JavaScript, and Xamarin, as well as others which are listed here. Its tools include data grids, charts, reports, input, schedulers, calendars, ribbons, and other features, along with supported platforms and editions. Product comparisons are available.
https://www.grapecity.com/componentone/
Associated with QuinStreet, DevX is a software developer site, offering informational articles sorted into several categories, including .NET, Java, C++, Web Dev, Architecture, Database, Security, Open Source, Enterprise, and Mobile, as well as specialized developer zones, research center, special reports, 10-minute solutions, DevXtra blogs, and slideshow. An online discussion forum, known as DevX Discussions, is included, covering these and other topics.
http://www.devx.com/
Most often known as SD Times, Software Development Times is published by D2 Emerge in both a monthly print magazine format and an online electronic edition, for a readership of software and development managers, DevOps teams, software testing professionals, and CIOs. Regular topic categories include API, Agile, Containers, Data, DevOps, DevSecOps, Low Code, Microservices, Monitor, Security, Serverless, Test, and Value Stream. Advertising opportunities are available.
https://sdtimes.com/
Offering copy protection, license management, and online sales automation for enterprise-level or single software developers, the SoftwareKey System is designed to be a turnkey client/server system, featuring activation and management tools, revamped dashboards, custom portals, and up-to-date encryption, available as a shared or dedicated managed and hosted service, or a turnkey server that can be hosted on the developer’s own IT infrastructure. Its pricing is listed.
https://www.softwarekey.com/
A GrapeCity product, Wijmo offers lightweight, high-speed HTML5/JavaScript applications with no dependencies. Its flexible API is designed to have a low learning curve, utilizing a simple core with as many extensibility points as possible, and which supports Angular, AngularJS, ReactJS, Vue.js, and Knockout. The application includes web-based and VSCode designers, as well as mobile-first charts, grids, and other controls. True JavaScript controls may be written in TypeScript, giving a C# feel.
https://www.grapecity.com/wijmo/
Owned by GrapeCity, a multinational software corporation, Xamarin UI offers controls for native mobile applications, with the same features and functions in iOS, Android, and Windows 10 devices, allowing developers to deliver a unique look-and-feel that matches each target device without extra effort, as the controls are based on true native implementations. Its features are listed, and a demos are available for download. Other resources include a user forum, videos, and documentation.
https://www.grapecity.com/componentone/xamarin/