Is the CI for a project for one or two people?

At work, where we develop LOB.NET/MSSQL, many of the projects that we have are projects for 2 people or even 1 person, which have 1-3 months development life cycles. Developers serve as a business analyst / project manager / QA, so everything is quickly executed with a minimum of "BS time". We get larger projects that can take 6 months, and we have a team of 5 developers, but this is more unusual.

We are trying to initiate everyone who does TDD in the future (my last project has full code coverage and was developed exclusively), and I have been researching an architecture that requires the maximum benefit from it. It seems that most people involved in TDD do CI, have a build server and make automatic builds, and have some kind of automated client creation tool (FinalBuilder or nAnt), etc.

So, my questions - I see obvious advantages in unusual large projects in which you have 5 people working on the same code base at once - but will we see the great benefit of performing CI in small projects involving two people? How about a 1 person project - for them it’s just a complete waste of time, because you really don’t “integrate” with anyone? And, how would you do the CI / automatic builds / build server step for management?

+4
source share
2 answers

Thanks to the automated / repeatable build process and the ability to prove that the current build passes all the tests and runs in a server environment, it’s worth the effort for any IMHO project of size.

I would put it this way: manual assemblies were manual. Things can mix even on small projects. This automatic build solves this problem. The time taken to create the script assembly will be executed multiple times during the application life cycle.

As for the CI with test runs, etc .... goes: this is a constant check of the code base. It's good to know as soon as possible when one inadvertently violates the other.

+10
source

In a small project, you don’t need most of the infrastructure for working with CI, especially with the build server. You need tests, build automation, version control, and a controlled build environment. You can also just so that your teams and test servers are virtual machine images that you run on your workstations ... only as long as the images are under revision control, like the whole project.

+2
source

All Articles