build automation software development core activities processes requirements design engineering construction testing debugging deployment maintenance paradigms and models agile cleanroom incremental prototyping spiral v model waterfall methodologies and frameworks asd devops dad dsdm fdd iid kanban lean sd less mdd msf psp rad rup safe scrum semat tsp up xp supporting disciplines configuration management documentation software quality assurance sqa project management user experience practices atdd bdd cco ci cd ddd pp standup tdd tools compiler debugger profiler gui designer modeling ide build automation release automation infrastructure as code testing standards and bodies of knowledge babok cmmi ieee standards iso 9001 isoiec standards pmbok swebok itil glossaries artificial intelligence computer science electrical and electronics engineering vte build automation is the process of automating the creation of a software build and the associated processes including compiling computer source code into binary code packaging binary code and running automated tests overview historically build automation was accomplished through makefiles today there are two general categories of tools buildautomation utility like make rake cake ms build ant gradle etc whose primary purpose is to generate build artifacts through activities like compiling and linking source code buildautomation servers these are general web based tools that execute buildautomation utilities on a scheduled or triggered basis a continuous integration server is a type of buildautomation server depending on the level of automation the following classification is possible makefile level makebased tools nonmakebased tools build script or makefile generation tools continuousintegration tools configurationmanagement tools metabuild tools or package managers other a software list for each can be found in list of build automation software buildautomation utilities buildautomation utilities allow the automation of simple repeatable tasks when using the tool it will calculate how to reach the goal by executing tasks in the correct specific order and running each task the two ways build tools differ are taskoriented vs productoriented taskoriented tools describe the dependency of networks in terms of a specific set task and productoriented tools describe things in terms of the products they generate buildautomation servers although build servers existed long before continuousintegration servers they are generally synonymous with continuousintegration servers however a build server may also be incorporated into an ara tool or alm tool server types ondemand automation such as a user running a script at the command line scheduled automation such as a continuous integration server running a nightly build triggered automation such as a continuous integration server running a build on every commit to a versioncontrol system distributed build automation automation is achieved through the use of a compile farm for either distributed compilation or the execution of the utility step the distributed build process must have machine intelligence to understand the sourcecode dependencies to execute the distributed build relationship to continuous delivery and continuous integration build automation is considered the first step in moving toward implementing a culture of continuous delivery and devops build automation combined with continuous integration deployment applicationrelease automation and many other processes help move an organization forward in establishing softwaredelivery best practices advantages the advantages of build automation to software development projects include a necessary precondition for continuous integration and continuous testing improve product quality accelerate the compile and link processing eliminate redundant tasks minimize bad builds eliminate dependencies on key personnel have history of builds and releases in order to investigate issues save time and money because of the reasons listed above applicationrelease automation ara continuous configuration automation cca continuous integration ci continuous delivery cd continuous testing devops list of build automation software product family engineering release engineering re software configuration management scm unit testing 