The US Bureau of Labor Statistics counted 1,717,800 software developers in 2025. It counted 110,800 computer programmers, the people who write and test the code. That’s more than 15 times as many developers as programmers, which says a lot about how much of the job happens outside the editor.
Software development takes defined requirements and carries them through design, coding, testing, deployment, and maintenance until there’s a working program. Teams apply it to web, mobile, desktop, enterprise, and embedded products. And it doesn’t stop at release, since fixes and upgrades keep coming.
What Is Software Development?
Requirements go in one end and a maintained, working program comes out the other. Design, building, testing, and deployment fill the space in between.
Code is only one output of all that. Hardware design and network engineering sit outside it, although embedded software work has to coordinate with the hardware it controls.
In practice the work covers requirements and planning, design and architecture, implementation (coding), testing and debugging, deployment and release, and maintenance and documentation.
Depending on the job, the finished product is system software, programming software, application software, or embedded software.
Early on, it helps to know how application software differs from system software. Apps do something for a user. System software keeps the machine running underneath them.
Custom software follows the same process, just pointed at one organization’s users and functions rather than a packaged product for a mass market.
ISO/IEC/IEEE 12207:2026 is the international reference for the process side. It came out in April 2026 and replaces the 2017 edition, defining software life cycle processes. It also applies when an organization acquires a system that contains software. Teams use it to define and control their own processes, and to improve them over time.
Software Development vs Programming and Software Engineering

Programming means writing code. Development is wider and covers delivering a working product through the full process, and software engineering is that same process with formal engineering discipline applied to it.
| Term | Scope | Main output | BLS median pay, May 2025 |
|---|---|---|---|
| Programming | Writing, modifying, and testing code | Working code and scripts | $100,390 (computer programmers) |
| Software development | Design through maintenance | A shipped, maintained product | $135,980 (software developers) |
| Software engineering | Engineering discipline across the whole life cycle | Systems built under a measured, repeatable process | Grouped with developers |
Explainers don’t agree on how these relate. Some call development a subset of engineering, others call it the broader activity that engineering formalizes.
The primary sources settle more than the blog posts do. IEEE’s glossary (610.12-1990) describes software engineering as applying a systematic and disciplined approach, one that can be quantified, to developing, operating, and maintaining software.
The Bureau of Labor Statistics treats software engineers as one type of software developer, the type that takes the broad view of scope and order of work. Programmers, in its description, turn developers’ designs into code, though duties overlap in some companies.
BLS projects employment of computer programmers to decline 7 percent from 2025 to 2035, and expects some higher-skilled programming tasks to shift to software developers.
If you want the longer version on roles and education paths, how software development and software engineering differ in practice goes through it.
Job titles blur together a lot more than the underlying disciplines do.
The Stages of the Software Development Life Cycle

The software development life cycle (SDLC) starts with planning and moves through requirements analysis, design, implementation, testing, and deployment. Maintenance closes it out, and then keeps going.
Most guides settle on seven stages, and a stage-by-stage walkthrough of the seven SDLC phases shows what each hand-off carries. Sources split the stages differently, usually by merging planning with requirements or testing with implementation.
- Planning sets scope, budget, schedule, and feasibility, and produces a project plan.
- Requirements analysis pins down what the software has to do and the constraints it works under. The deliverable is a requirements specification.
- Design covers architecture, data models, and interfaces. The result is a design document.
- During implementation the code gets written and reviewed, which gives you working builds.
- Testing runs unit, integration, system, and acceptance checks. Out come a test report and a defect list.
- Deployment pushes a released version into the production environment.
- Maintenance is fixes, upgrades, and monitoring, so the output is patches and updated releases.
ISO/IEC/IEEE 12207:2026 doesn’t require a specific life cycle model or development methodology. It supplies processes that teams map onto whatever model they use, so the stage list above stays recognizable even when the working method changes.
Teams underestimate maintenance more than any other stage. Everything after launch, from patches to monitoring to upgrades, is covered in detail under support after release.
Methodologies reorder or repeat these stages. Waterfall runs through them once in sequence, while agile loops through them in short cycles.
How to Choose a Software Development Methodology
How stable the requirements are and how often the product has to ship should drive the choice, more than anything else does.
| Method | Release cadence | Best fit | Main weakness |
|---|---|---|---|
| Waterfall | One release at the end | Fixed scope, stable requirements | Late changes are expensive |
| Scrum | Every sprint, one month or less | Requirements that evolve | Mid-sprint changes are restricted |
| Kanban | Continuous | Steady inflow of varied work | No timebox rhythm by default |
| DevOps | Frequent, automated | Products that ship often | Needs pipeline automation and shared ownership |
Waterfall

Waterfall suits a fixed scope where the requirements won’t move. It gets mocked a lot, but for a fixed-scope contract it’s still a reasonable pick.
It falls apart when testing teaches the team something that should have changed the design three stages earlier.
Winston Royce’s 1970 paper, “Managing the Development of Large Software Systems,” is the origin usually credited for waterfall. Royce never used the word, and he warned that a single-pass sequence is risky for large systems.
Agile

Seventeen people wrote the Manifesto for Agile Software Development at Snowbird, Utah, on February 11 to 13, 2001, according to the Agile Manifesto’s own history page.
It swapped heavyweight planning for short feedback loops. Scrum and Kanban are the two common ways to run it.
Scrum
Scrum runs on sprints, which the 2020 Scrum Guide describes as fixed-length events of one month or less. A new sprint starts as soon as the previous one ends.
The team is one Scrum Master, one Product Owner, and the Developers, and the work items wait in a product backlog, often written as user stories.
Kanban
The Kanban Guide (May 2025 edition, John Coleman and Daniel Vacanti) frames Kanban as a strategy for optimizing the flow of value through a process, with flow metrics to track it.
The catch is that no sprint boundary forces planning or review, so the team has to build that rhythm itself. Scrum teams can add Kanban practices without dropping any Scrum events.
DevOps

DevOps is a delivery practice, not a replacement for agile or waterfall.
Teams that run DevOps practices join development and operations through automation, and continuous integration and continuous delivery (CI/CD) move each change toward production. Automation without a strong test suite only ships bugs faster.
A decision rule for choosing
A rough rule looks like this.
- Fixed scope and stable requirements point to waterfall.
- If requirements shift and you release every few weeks, Scrum fits.
- Support and maintenance work, which arrives continuously, suits Kanban.
- Already have frequent releases and automated tests? Add DevOps practices on top of whichever method you picked.
The long-running debate over agile versus waterfall comes down to one trade, certainty up front against adaptability later. Choose the cost you can live with.
Types of Software Development
The usual way to sort software work is by where the product runs and who relies on it. That gives web, mobile, desktop, enterprise, and embedded work, with API and database layers underneath all of it.
Web development gets divided by which side of the browser you work on. Front-end is everything the browser renders and the user touches, back-end is the servers, databases, and business logic behind the interface, and a full-stack developer covers both.
Front-end work means building the interface users see in a browser, mostly with HTML, CSS, and JavaScript.
Back-end work is the server-side logic that stores and serves data, and Node.js, Java, and Python show up most often there in web projects.
Mobile app development targets phones and tablets, either with native code for one platform or a cross-platform framework that covers both.
Desktop and enterprise applications live inside organizations, often for years, so maintenance cost counts for more than launch speed.
Embedded software sits inside physical products, so its development has to move in step with the product it controls.
API development builds the interfaces that let software components on desktops, mobile devices, and the web talk to each other.
On languages, JavaScript is the usual pick for browser interfaces, and Python covers general-purpose and data-heavy work. Java runs a lot of large enterprise systems.
Low-code platforms assemble applications from visual components and configuration instead of hand-written code. They fit internal tools and standard workflows. Once you need custom logic or heavy scaling, hand-written code takes over.
Who Works on a Software Development Team?

Developers design and build, and QA analysts and testers go looking for defects. Somebody has to set priorities (the Product Owner), and somebody has to keep the schedule honest (a delivery lead).
Day to day, the split looks like this.
- Software developers analyze user needs, design the application, and document it so it can be maintained later.
- QA analysts and testers write test plans, run manual and automated tests, and report defects.
- The Product Owner orders the backlog and answers for the value of the product.
- The Scrum Master establishes Scrum and answers for the team’s effectiveness.
- An IT project manager supervises a project from planning through implementation against deadlines, standards, and cost targets.
- DevOps engineers build and run the pipeline that carries changes from commit to production.
BLS profiles developers, QA analysts, and testers on one page but reports separate pay and growth for each. Scrum draws the line elsewhere.
The 2020 Scrum Guide calls everyone who builds any part of the Increment a Developer, so a tester on a Scrum team is a Developer in Scrum’s vocabulary. Check which vocabulary a job posting is using before comparing titles.
The same Guide makes the Product Owner one person, not a committee, accountable for maximizing the value of the product.
That is why what a Product Owner decides day to day matters more than the title. The backlog order is the team’s priority call.
Small teams combine roles. A developer who also tests, or a lead who also owns the pipeline, is normal, because the roles above describe responsibilities, not headcount.
For a wider breakdown of team roles and what each one owns, the longer guide covers the rest.
Tools and Languages Developers Use
Most developers spend their days in version control, an issue tracker, an editor, a CI/CD setup, and, increasingly, containers, writing mostly in a small set of languages.
- Git is distributed version control, so every clone carries the full project history.
- GitHub hosts Git repositories and adds review and collaboration on top.
- Jira tracks work as issues that move through a workflow on boards.
- Visual Studio Code was the most used IDE in Stack Overflow’s 2026 survey, at 70.9% of respondents to that question.
- Jenkins is an open-source automation server that builds and tests software and deploys it.
- Docker packages an application and its dependencies into an image that runs as a container.
- Kubernetes automates deployment, scaling, and management of containerized applications.
Git underpins the rest of the list. Learn how version control tracks and merges changes in a shared codebase before touching a pipeline.
JavaScript is the most used language in Stack Overflow’s 2026 developer survey at 62%, ahead of SQL and HTML/CSS, which both sit near 58%.
Tool choice follows methodology and team size. Jira offers Scrum boards for sprint work and Kanban boards for continuous flow, which maps straight back to the methodology decision above.
Docker on its own fits one host or a few. You get reproducible packaging and runs, and there’s very little to operate.
Add Kubernetes once you have many containers across many machines. That buys automated deployment, scaling, and management, along with a cluster you now have to run and secure.
Skip Kubernetes until a single host stops being enough. For the longer comparison, see how Kubernetes and Docker divide the work.
Where Software Development Projects Break Down
Most project trouble starts with requirements that change after design. Old code nobody owns causes a good share of the rest, and lately delivery pipelines that can’t absorb faster output have joined in.
Late requirement changes
Every stage of the life cycle assumes the one before it was right.
When a requirement moves after design sign-off, sequential teams pay for rework in each later stage. A formal process for approving requirement changes contains the cost, and shorter cycles reduce how often it comes up.
Changing early is cheaper than defending late.
Technical debt and maintenance

Maintenance work grows with every shortcut left behind.
Teams that defer cleanup carry technical debt, the accumulated cost of shortcuts left in the code, and each new feature turns into a negotiation with old decisions.
Knight Capital on August 1, 2012 is the documented case. A new release reused an activation flag tied to discontinued code that was still sitting on its servers, and one server never received the update, so it kept running the old logic. The SEC’s 2013 order put the trading loss at more than $460 million.
The SEC faulted Knight for lacking controls to deploy new code in an orderly way or to prevent activation of code no longer intended for use.
AI-assisted coding and instability
Google Cloud’s DORA research (2024) estimated a 7.2% drop in delivery stability for every 25% rise in an organization’s AI adoption.
The 2025 DORA report reversed the throughput finding. AI adoption now correlates with higher throughput, and instability stays elevated. DORA’s 2026 follow-up report on the return on AI-assisted development, which draws on the 2025 research, still treats the rise in instability as a cost.
The 2025 report offers two hypotheses for the reversal. AI may be absorbing scaffolding and boilerplate along with routine transformations, which leaves developers more time to deploy code. Organizational systems may also be adapting to work better with AI.
DORA’s conclusion is that AI amplifies the strengths of high-performing teams and the weaknesses of struggling ones.
Stack Overflow’s 2026 survey found that 66% of respondents use coding assistants or agents, and 73% of those users use them daily. BLS still projects strong demand for developers, citing software built for AI, Internet of Things devices, and robotics.
Read together, the sources point the same way (this is the site’s inference, not a finding from any single report). Output gets cheaper while instability rises, so review, testing, and release controls carry more of the load.
Software Developer Pay and Job Outlook
BLS projects employment of software developers to grow 10 percent from 2025 to 2035, much faster than the average for all occupations.
The figures below come from the BLS Occupational Outlook Handbook, edition last modified August 27, 2026.
- Projected employment growth for software developers from 2025 to 2035 is 10%.
- QA analysts and testers had a median wage of $104,300 in May 2025.
- Developers at software publishers had a median wage of $164,550 in May 2025.
- The typical entry-level education is a bachelor’s degree, and no related work experience is required.
The all-industry developer median sits in the comparison table earlier in this guide. Developers at software publishers earn more than that figure at the median, so employer type moves pay as much as title does.
BLS ties the growth projection to software for AI, Internet of Things devices, robotics, and other automation, plus rising investment in security software.
Many openings come from replacing workers who leave the occupation, not only from new jobs.
Employers usually want a bachelor’s degree in computer and information technology or a related field such as engineering or mathematics, and some prefer a master’s. BLS adds that internships count, and that developers need a strong programming background even though writing code is not their main duty.
Software Development FAQ
What does software development cost?

There is no flat price. What moves the total is scope, how many platforms are involved, how senior the team is, and what maintenance after launch costs.
A reliable estimate only exists after requirements analysis fixes the scope, so quotes given before that stage are guesses.
How long does a software development project take?
It depends on scope and method. Under Scrum, a team delivers a usable Increment within a month at most, while a waterfall project delivers once, at the end.
Maintenance continues for as long as the product is in use.
Should a company build custom software or use low-code?
Low-code works for internal tools and standard workflows. Custom software earns its cost when the product’s logic, performance, or integrations are what set it apart.
One practical path is to prototype in low-code and rebuild only the parts that hit limits.
Is in-house development better than outsourcing?
Neither wins by default. In-house teams fit products at the core of the business that change constantly, and outsourcing fits fixed-scope projects or gaps in skills.
With either model, keep ownership of the requirements and access to the codebase.
How does security fit into the software development life cycle?

NIST’s Secure Software Development Framework (SP 800-218, version 1.1, February 2022) notes that few SDLC models address security in detail. Teams add its core set of secure practices to whichever model they use.
Security runs through every stage instead of sitting in one.
Is software development the same as web development?
No. Web development is one type of software development, covering browser interfaces and the servers behind them.
Mobile apps, desktop and enterprise software, and embedded systems fall under the broader discipline too.
Can someone become a software developer without a degree?
Yes, though it is not the typical route. BLS lists a bachelor’s degree as the typical entry-level education for software developers.
Its programmer profile adds that some employers hire workers with other degrees or experience in specific programming languages.
Where a Beginner Should Start in Software Development
Start with one general-purpose language and one small project, built end to end and kept in Git from the first commit. A team methodology can wait until a second contributor joins.
That order puts the skills that compound first, because code kept under version control from day one carries its own history.
A solo project skips code review, sprint planning, and release coordination, so those habits arrive late and need deliberate practice.
The advice, verified in October 2026, changes if a future DORA report shows AI-assisted coding no longer lowering delivery stability, since review discipline would then rank lower among beginner skills.
- Notepad++ Android Options: Apps That Come Close - October 21, 2026
- Data Management Services: A Practical Guide for Growing Companies - October 21, 2026
- MongoDB Cheat Sheet - October 20, 2026



