Deprecated: Assigning the return value of new by reference is deprecated in /var/www/hvidtfeldts.net/wiki/inc/parserutils.php on line 159
Deprecated: Function split() is deprecated in /var/www/hvidtfeldts.net/wiki/inc/auth.php on line 103
Warning: Cannot modify header information - headers already sent by (output started at /var/www/hvidtfeldts.net/wiki/inc/parserutils.php:159) in /var/www/hvidtfeldts.net/wiki/inc/auth.php on line 191
Deprecated: Function split() is deprecated in /var/www/hvidtfeldts.net/wiki/inc/common.php on line 737
Warning: Cannot modify header information - headers already sent by (output started at /var/www/hvidtfeldts.net/wiki/inc/parserutils.php:159) in /var/www/hvidtfeldts.net/wiki/inc/actions.php on line 262
In order to setup a productive development environment consider the following:
Versioning. You will need a central repository for all code, documents, and data that is created. You will need a backup strategy.
Intranet. A intranet can be very convenient even for small businesses. Make sure that updating and supporting the intranet is extremely easy - otherwise it will not be used, and will gradually decay. A Wiki is probably the best way to setup an intranet. Perhaps you will need a FTP server as well. (Though a versioning server like Subversion in most cases will do).
Access from home. It should be important to access the environment from home. People should
Security. Make sure no one else can access your local network. Complety firewall you local network. Ideally only one port should be accessible from the outside - a port to the VPN server. If you setup WiFi make sure you use suitable encryption (Hiding SSID and MAC filtering is no good, WEP is easily cracked, and even WPA can be cracked given enough time). If you use laptops, consider encrypting valuable code and documents. TrueCrypt is excellent for this.
Collaboration tools. Exchange versus GMail, GCalendar, ...
Overview Document.
Software planning
Quick UML.
Gantt
The notepad approach?
The Development Environment
Software versioning.
Subversion
TortoiseSVN
AnkhSVN.
Documentation.
Doxygen and Wiki.
The Development Process
Agile Development
Unit Testing
Pair Coding
The Coding Process
Modularity Object Oriented
The Coding ?
Logs / Exceptions
Coding styles. A lot can be said about different coding styles. Don’t waste to much time writing large formal documents describing coding styles and best practices. Stick to one of modern coding styles (like the one used in the Java or C# API’s). If you are relying on one of those all-encompassing API’s (like the .NET framework, Trolltech’s Qt, or the JAVA class libraries) use a similar notation. Do not use hungarian notation (not even Microsoft uses it anymore).
Java - when I starting doing serious programming (1996 or so), Java was really hot. It was the cool alternative to tedious cplusplus programming, or the ... delphi or VB languages.
This has changed.
By now a large group of programmers has drifted towards Microsofts .net platform (and C# which off course seems syntactically ‘inspired’ by java) which seems to posses a much larger momentum.
Of course the quite large segment of open source minded programmers (e.g. people who read slashdot) would never adopt a Microsoft controlled technology - these people, however, seems to moving along to more rapid development languages like Python and Ruby (see also Ruby on Rails).