Infrastructure for a software project

In the near future I will lead a new project. And I reflected on what is the basic infrastructure for a software project. This is the material that I think every project should have:

- Coding Style Conventions

-Terms of Use

-Standard project directory structure (e.g. standard maven maven layout, etc.)

- Project management and problem tracking (e.g. trac, redmine, etc.)

-Continuous Integration server (e.g. hudson, cruise control, etc.)

I'm not sure I missed anything. Would anyone like to add?

+4
source share
8 answers

As a preliminary answer, check out Joel's test: http://www.joelonsoftware.com/articles/fog0000000043.html

Just a snack:

  • Do you use source control?
  • Can you complete the assembly in one step?
  • Do you make daily builds?
  • Do you have an error database?
  • Do you fix errors before writing new code?
  • Do you have a modern schedule?
  • Do you have a specification?
  • Do programmers have a relaxed working environment?
  • Do you use the best tools that money can buy?
  • Do you have testers?
  • Do new candidates need to write code during the interview?
  • Are you testing hallway usability?
+5
source
  • version control system (e.g. subversion, cvs, git)
+3
source

In addition to yours I will put:

  • Unit Test Strategy
  • Integration Testing Strategy
  • Specific process
  • Release (delivery) strategy (e.g. stages, work packages, etc.)
  • Versioning Branching Strategy
+2
source
  • How about documentation - how (comments in code, high-level specifications), when, quantity, who
  • How you will test - device / acceptance / user testing
  • version code, some SVN / Git (or is it included in trac?)
  • Team roles and responsibilities - must be performed in the context of your project.
+1
source

Knowledge management is critical. Since you already plan to use wiki (e.g. Trac or Redmine ), you can use it for KM as well.

0
source

Functional testing is an essential part of any project. Unit testing is great and it works well for Agile projects, but functional testing is still necessary. You need at least a basic test plan. If you plan to have several projects or subprojects, a test strategy document or a Wiki page will be good. Test cases, acceptance tests, etc. May be driven by your user stories or their equivalents, but they must still exist in one form or another.

0
source

I would drop the file sharing server into the mix. I thought version control was so simple that I didn't even bother putting it on a list. But this is good version control.

0
source

Configuration management plan. You need to have a documented approach to your development workflows, how you will merge between them, etc.

0
source

Source: https://habr.com/ru/post/1276856/


All Articles