Something that separates professional software developers from "cowboy hackers" are their understanding of the importance of sound engineering principles, and following best-practice methodology rather than cranking out unmaintainable code at the speed of light. An example is how they manage their source code throughout the lifetime of the project. There are excellent tools that help developers manage their code; and these tools are free!
Yet, some developers I meet still don't use such tools, and this amazes me all the time. I have heard many lame excuses as to why developers don't use the excellent and free code management tools that are available; and none of those reasons have impressed me a bit. To help embedded developers understand the value of using readily available and free tools for code management, we have written an extensive whitepaper on the subject. This blog post outlines the abstract and provides a link to the free whitepaper.
Development of any non-trivial software application involves constant changes to source code, often by more than one developer in a team, until the application is deemed to meet specification. Unless means are employed to track changes in an orderly fashion, chaos is bound to ensue. This will extend development times and ultimately lead to poor software quality.
The way out of this dilemma is to use some kind of revision control methodology. In practice, solutions vary widely from updating comments in code and header modules, to tracking changes in a spreadsheet, to the use of software applications specifically designed to track revisions during development. Version control tools as they are known, offer the most capable solution. The tradeoff in employing this solution is the investment of time needed to learn how to use these kinds of tools effectively versus the benefit derived from their usage. Busy developers must carefully pick and choose how to spend their time in order to satisfy the diverse and competing demands of their work.
The best way to implement version control in an organization, especially when multideveloper teams are involved, is to use one of the excellent version control tools available. This approach confers maximum benefit, flexibility and long range productivity, but at the cost of learning to use the chosen tool effectively. Mastering this kind of tool is greatly simplified by first understanding the basic model upon which version control tools are built, and the terminology involved.
Our whitepaper lays out the terminology and principles of version control using the Subversion tool as an example. This will give the reader a solid grounding in fundamentals which will substantially shorten the learning curve. This article also examines further productivity benefits that result from incorporation of a graphical interface to the version control database server directly within the embedded C/C++ integrated development environment.
Read the whitepaper here: