Outline of software development. mychillo

The following outline is provided as an overview of and topical guide to software development:

Software development – development of a software product, which entails computer programming (process of writing and maintaining the source code), and encompasses a planned and structured process from the conception of the desired software to its final manifestation. Therefore, software development may include research, new development, prototyping, modification, reuse, re-engineering, maintenance, or any other activities that result in software products.

What type of thing is software development? 

Software development can be described as all of the following:
 Research and development
 Vocation
 Profession

Branches of software development 
 Software engineering
 Computer programming
 Video game development
 Web development
 Web application development
 Mobile application development

History of software development 

 History of operating systems
 History of programming languages

Software development participants 
 Software developer
 Software engineer
 Consulting software engineer
 Computer programmer
 Software publisher
 Web developer

Software development problems 
 Shovelware
 Software bloat
 Software bug

Software project management 
 Software project management – art and science of planning and leading software projects. It is a sub-discipline of project management in which software projects are planned, monitored and controlled.
 Software configuration management

Software development strategies 
 Offshore software R&D – provision of software development services by an external supplier positioned in a country that is geographically remote from the client enterprise; a type of offshore outsourcing.

Software development process 
 Software development process
 Software release life cycle
 Stages of development
 Pre-alpha
 Alpha release
 Beta release
 Closed beta
 Open beta
 Release candidate
 Release
 Release to manufacturing (RTM)
 General availability release (GA)
 Web release (RTW)
 Technical support
 End-of-life – termination of support for a product

Activities and steps 
 Requirements analysis
 Software development effort estimation
 Functional specification
 Software architecture
 Software design
 Computer programming
 Software testing
 Software deployment
 Software release
 Product installation
 Product activation
 Deactivation
 Adaptation
 Software update
 Uninstallation
 Uninstaller
 Product retirement
 Software maintenance

Software development methodologies 

 Aspect-oriented software development
 Cleanroom Software Engineering
 Iterative and incremental development
 Incremental funding methodology
 Rapid application development
 IBM Rational Unified Process
 Spiral model
 Waterfall model
 Extreme programming
 Lean software development
 Scrum
 V-Model
 Test-driven development (TDD)

Agile software development 

 Cross-functional team
 Extreme programming
 Iterative and incremental development
 Pair programming
 Self-organization
 Timeboxing

Supporting disciplines 
 Computer programming
 Software documentation
 Software engineering
 Software quality assurance (SQA)
 User experience design

Software development tools 
 Programming tool
 Compiler
 Debugger
 Performance analysis
 Graphical user interface builder
 Integrated development environment

Education relevant to software development 
 Bachelor's degree in computer science – type of bachelor's degree awarded for study of computer science, emphasizing the mathematical and theoretical foundations of computing, rather than teaching specific technologies that may quickly become outdated. Such a degree is a common initial bachelor's degree for those entering the field of software development.

Software development organizations 
While the information technology (IT) industry undergoes changes faster than any other field, most technical experts agree that one must have a community to consult, learn from, or share experiences with. Here is a list of well-known software development organizations.

 Association of Computer Engineers and Technicians (ACE – ACET) professional standards within the IT industry.
 Association for Computing Machinery (ACM) is one of the oldest and largest scientific communities that deal with computing and technology. It covers a wide range of topics including e-commerce, bioinformatics, and networking. 
 Association of Independent Information Professionals (AIIP) is an association for information professionals working independently or within the related industries.
 Association of Information Technology Professionals (AITP) is a worldwide community that focuses on information technology education. It helps to connect experts from different IT fields.
 ASIS International (ASIS) is the leading community that connects security professionals from all over the world. 
 Association of Shareware Professionals (ASP) connects developers and tech specialists who work with services and application on "try-before-you-buy" basis.
 Association for Women in Computing (AWC) organizes educational and networking events for female tech specialists in order to increase the share of women in the industry. 
 Black Data Processing Associates (BDPA) gathers a community of African Americans working in information technology for both educational and professional growth.
 Computer & Communications Industry Association (CCIA) advocates for open markets, systems and competition.
 Computing Technology Industry Association (CompTIA) provides certifications for the IT industry, as well as educates individuals and group on changes and tendencies for the industry. 
 Computer Professionals for Social Responsibility (CPSR) an organization concerned with technology's impact on society. The group provides the assessment of the tech development and its impact on various fields of life.
 Data & Analysis Center for Software (DACS) collects and serves the information about various entities and software they produce, as well as its trustworthiness.
 EDUCAUSE is a non-profit organization that states its mission as ‘advance higher education through information technology’.
 European Computer Manufacturers Association (ECMA) is a European organization that facilitates standards and information and communication systems.
 International Association of Engineers (IAENG) is an international association that used to be a private network. Nowadays, hosts annual World Congress on Engineering for R&D and engineers.
 Institute of Electrical and Electronics Engineers (IEEE) Computer Society provides educational services to its members worldwide. This society has one of the biggest networks and offers numerous perks to its members.
 Information Systems Security Association (ISSA) is a not-for-profit, that encourages the use of practices to protect the confidentiality and integrity of information resources.
 Network Professional Association (NPA) encourages its members to adhere to the code of ethics, follows the latest best practices and indulge in continuous self-education.
 Technology Services Industry Association (TSIA) is a professional association that offers research and advisory services. 
 Society for Technical Communication (STC) offers support and knowledge sharing to specialists involved in technical communication and related fields. 
 User Experience Professionals Association (UXPA) is an organization that shares knowledge about UX and helps its members to grow, develop and improve their products.
 Women in Technology (WIT) advocates the education of female representatives in the industry all the way from elementary training to advanced programs.

Software development publications 

 SD Times
 The Pragmatic Programmer
 Design Patterns: Elements of Reusable Object-Oriented Software
 Introduction to Algorithms
 Structure and Interpretation of Computer Programs

Persons influential in software development

Language creators, designers 
 Kathleen Booth (Assembly)
 Bjarne Stroustrup (C++)
 Brendan Eich (JavaScript)
 James Gosling (Java)
 Guido van Rossum (Python)

Influencers of software design 
 Bill Joy
 Martin Fowler
 "Uncle Bob" Martin

See also 

 Product activation
 Software blueprint
 Software design
 Software development effort estimation
 Outline of web design and web development
 Outline of software engineering

References 

Software development
Software Development
Software Development