Software Development Process
The software development process is a prescribed ordering of activities governed by guidelines and structured by templates and tools that produces a product in a consistently repeatable manner. This software development process describes the activites that constitute the full lifecycle of a software development iteration. The end result of this process is a product that is delivered to the customer (a “deliverable”).
Depending on the type of relationship that has been established with the customer, this software development process could be iterative. The entire software development lifecycle described by this software development process is executed for each release of the product. Each new release accretes function and refinement as this software development process is executed again and again for each iteration. Each successive iteration would build on the artifacts of the previous iteration.
- Logic skills: Ability to devise logical solutions for programming problems.
- Flexible:Adaptable, happy to take new directions, happy to work with new technologies.
- Deep knowledge: Has an in-depth understanding and experience in some small number (typically fewer than 10) programming languages and related technologies.
- Software design and architecture: Can design class structures, can design API’s, can design subsystems within an application, or can design entire application architectures.
- Problem solving: Knows how to attack a problem and has the tenacity to solve even very hard problems, uses appropriate debugging tools.
- Cares about maintainability
- Strong research skills: Good at ferreting out information: digging through documentation, searching the web, reading reference guides, release notes, discussion forums, mailing lists. Knows how to find answers.