EMZETT.
Login

Application Development

In short: The process of designing, programming, testing and maintaining software (applications).

In more detail: Typically covers several phases: requirements analysis, design/architecture, implementation (writing source code), testing and maintenance after release. One of the two central specialisations in the German chamber-of-commerce (“IHK”) IT specialist training, alongside system integration.

In Depth

Distinction from system integration

While system integration revolves around operating and networking existing systems (servers, networks, clients), application development is about building new software itself — from the idea to the finished, maintainable product. Someone learning system integration, in doubt, keeps other people’s systems running; someone learning application development creates the software others will later operate.

Process models

In practice, application developers usually work according to a structured process model:

  • Waterfall model: strictly sequential phases (first complete requirements analysis, then design, then implementation, then testing) — rarely used in pure form today, since late feedback leads to expensive rework.
  • Agile models (Scrum, Kanban): requirements are implemented iteratively in short cycles (“sprints”, usually 1-4 weeks) and continuously adjusted, based on feedback from already-finished pieces — considerably more widespread in industry today, since software requirements can rarely be fully predicted from the start.
  • DevOps practices: increasingly blur the classic separation between “development” and “operations” — developers increasingly take on responsibility for operating their own software (see CI/CD pipeline).

Training content

Training typically covers: the basics of one or more programming languages (e.g. Java), database design and SQL, algorithms and data structures as a theoretical foundation, as well as team practices (including Git for version control, code reviews, test automation). Basics of IT security (secure coding, avoiding classic vulnerabilities) and cloud/container technologies are also becoming increasingly important, since modern applications rarely still run on classic standalone servers.

Maintainability as a central quality trait

A central quality trait is the maintainability of the resulting source code — code that works but that nobody except the original author understands causes high follow-up costs in the long run: every later change takes longer, bugs creep in more easily, new team members take longer to get up to speed. Studies on software maintenance repeatedly show that a large share of a software project’s total cost (often well over 50%) occurs AFTER the first release — maintainability is therefore not an academic side issue, but directly economically relevant.

Test levels

Professional application development works with several test levels: unit tests check individual functions/methods in isolation (fast, many of them), integration tests check the interplay of several components (e.g. application + database), and end-to-end tests simulate complete user flows through the finished interface (slow, but realistic). The “test pyramid” describes the usual proportion: many fast unit tests as the base, fewer integration tests, and only a few, but meaningful, end-to-end tests at the top — inversely proportional to execution speed and maintenance effort.

From solo developer to team

Application development in a team differs considerably from solo projects: code reviews (a second developer checks changes before integration), consistent coding guidelines (code style, naming conventions) and automated quality checks (linters that automatically detect code problems) become important as soon as several people work together on the same codebase. Without such processes, the risk of inconsistencies, duplicates and hard-to-follow decisions grows disproportionately with team size.

See also: System Integration, Source Code