Managing software projects
Saturday, January 09th, 2010 | Author: Konrad Voelkel
Today in the series "How to do XYZ with software?":
How to manage software projects?
This is a huge subject, way beyond my knowledge, so I can't help you. But I can describe what I do, which software tools I use, so this could point someone who has never programmed into the right direction (Henrik, this post is for you).
Most software "projects" I have are not projects at all but just little ideas that are finished within 2-3 hours. I just do it, keeping the source-code in one folder, using either some editor with syntax highlighting (like Gedit or Kate) or, for Java stuff, Eclipse. Eclipse is a little bit intimidating when you look at it the first time, but most of the features are not important for most people, so you can ignore them - and some of the other features are really useful. I recommend to take some Eclipse tutorials to understand the core features.
For something that takes longer, I use a version control system, some concurrency system - even when I'm the only developer, this helps when I'm working with different computers and as a back-up strategy, too. There are lots of free repository hosters, sourceforge is just one popular example (but be warned: it's almost impossible to remove a project from sourceforge once it's there).
In larger projects I participated, they used Maven for the build process, which worked quite well. I've never learned to manage Maven's full complexity and I think it's not that important for non-professional programmers.
(comic licensed from Oliver Widder under a Creative Commons Attribution-NoDerivs 2.0 License)
So now comes my advice for every non-professional programmer: if you do something with Java, use Eclipse. If you do something else, an editor with syntax-highlighting might be enough, at least to start with. If your project lasts longer than a month or involves anybody else, you'll need a repository to host your source-code that supports concurrency. Most likely, this will be a Subversion (SVN) repository, since this is the successor of CVS, one of the oldest and best-documented versioning systems. Once you develop plans on future versions or you have more than 3 bugs you're trying to fix at the same time, you'll need an issue tracker (a bug tracker). Don't wait to use an issue tracker until your application has users - an issue tracker is helpful for developers, too (and not only for fixing bugs).
UPDATE: To overcome the eclipse confusion, take a look at these video tutorials.