Software development is a process of writing and maintaining the source code.

Software Development

Software development is the process of computer programming, documenting, testing, and bug fixing involved in creating and maintaining applications and frameworks resulting in a software product. Software development is a process of writing and maintaining the source code, but in a broader sense, it includes all that is involved between the conception of the desired software through to the final manifestation of the software, sometimes in a planned and structured process.Therefore, software development may include research, new development, prototyping, modification, reuse, re-engineering, maintenance, or any other activities that result in software products.1

Programming - the act or process of planning or writing a program.2


"Uncle" Bob Martin - "The Future of Programming"
Bret Victor The Future of Programming
ITT 2016 - Kevlin Henney - Seven Ineffective Coding Habits of Many Programmers

How to Read Code

  • Tips For Reading Code - One way to improve programming skills is to ReadGreatPrograms. Techniques such as SelfDocumentingCode and LiterateProgramming have been developed toward the goal of writing programs that can be easily read. However, most of us have to read lots of code that does not meet the above standards. What are the best ways to make sense out of those huge, unstructured, maintained-by-dozens-of-people, internally-inconsistent, undocumented code bases that we must understand and absorb?
  • One secret to becoming a great software engineer: read code - Become a better programmer by building a routine and habit for reading code

Don't repeat yourself (DRY)

In software engineering, don't repeat yourself (or do not repeat yourself; aka DRY) is a principle of software development aimed at reducing repetition of software patterns, replacing it with abstractions or using data normalization to avoid redundancy.3


SOLID is a mnemonic acronym for five design principles intended to make software designs more understandable, flexible and maintainable.4

The Twelve Factor App

The Twelve Factor App In the modern era, software is commonly delivered as a service: called web apps, or software-as-a-service. The twelve-factor app is a methodology for building software-as-a-service apps such that:

  • Use declarative formats for setup automation, to minimize time and cost for new developers joining the project;
  • Have a clean contract with the underlying operating system, offering maximum portability between execution environments;
  • Are suitable for deployment on modern cloud platforms, obviating the need for servers and systems administration;
  • Minimize divergence between development and production, enabling continuous deployment for maximum agility;
  • And can scale up without significant changes to tooling, architecture, or development practices.

The twelve-factor methodology can be applied to apps written in any programming language, and which use any combination of backing services (database, queue, memory cache, etc).

Peer Code Reviews

Contrary to what many believe, the benefits of code review closely align to the tenets outlined in the Agile Manifesto. Statistics prove that peer code review is one of the most effective ways to improve software quality by reducing defects upstream. By aligning a peer code review approach with your specific goals and Agile sprints, code review becomes incredibly Agile and delivers many soft benefits that evolve from renewed focus on interaction and collaboration. Case study synopses provide quantitative evidence and metrics that support the case for Agile code review.5

Agile Software Development

Agile software development is a group of software development methods in which requirements and solutions evolve through collaboration between self-organizing, cross-functional teams. It promotes adaptive planning, evolutionary development, early delivery, continuous improvement, and encourages rapid and flexible response to change6

Manifesto for Agile Software Development7

  • Individuals and interactions over processes and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan

Principles behind the Agile Manifesto

Extreme Programming (XP)

Extreme Programming (XP) is an agile software development framework that aims to produce higher quality software, and higher quality of life for the development team.8

Lean Software Development

Lean Software Development is a translation of lean manufacturing principles and practices to the software development domain.9

Waterfall Model

Waterfall Model is a sequential design process, used in software development processes, in which progress is seen as flowing steadily downwards (like a waterfall) through the phases of conception, initiation, analysis, design, construction, testing, production/implementation and maintenance.10

Related Topics

1 Software development. (2017, August 2). In Wikipedia, The Free Encyclopedia. Retrieved 16:29, August 26, 2017, from https://en.wikipedia.org/w/index.php?title=Software_development&oldid=793555465
3 Wikipedia contributors. (2019, February 15). Don't repeat yourself. In Wikipedia, The Free Encyclopedia. Retrieved 18:05, February 17, 2019, from https://en.wikipedia.org/w/index.php?title=Don%27t_repeat_yourself&oldid=883429654
4 Wikipedia contributors. (2019, February 8). SOLID. In Wikipedia, The Free Encyclopedia. Retrieved 16:57, February 17, 2019, from https://en.wikipedia.org/w/index.php?title=SOLID&oldid=882362051
6 Agile software development. (2015, June 29). In Wikipedia, The Free Encyclopedia. Retrieved 05:26, June 30, 2015, from https://en.wikipedia.org/w/index.php?title=Agile_software_development&oldid=669176431
9 Wikipedia contributors. (2019, January 14). Lean software development. In Wikipedia, The Free Encyclopedia. Retrieved 17:46, February 17, 2019, from https://en.wikipedia.org/w/index.php?title=Lean_software_development&oldid=878395515
10 Waterfall model. (2015, May 5). In Wikipedia, The Free Encyclopedia. Retrieved 03:57, June 27, 2015, from https://en.wikipedia.org/w/index.php?title=Waterfall_model&oldid=660906933
Last edited by MichaelAlber .
Page last modified on Tuesday January 7, 2020 20:05:01 UTC.