As a software craftsman who has grown up writing enterprise applications in a wide variety of languages including Java and Microsoft .NET, I have become accustomed to certain practices and tool sets that have not quite arrived yet in the Salesforce.com and Force.com realms.
Over the next couple of articles, I will share my thinking about what additional tools and capabilities are needed in order to meet the current standards found with Java and/or Microsoft.NET technologies for producing software for enterprises.
To be clear, when I speak of Enterprise Development I mean software development projects that are large enough that require coordinating the efforts of multiple developers over several weeks or longer periods of time. I am not speaking of development efforts that can be accomplished by a single developer in a relatively short period of time, because these types of projects do not necessarily require the practices and coordinations needed to deliver a successful outcome.
Another thing for both of us to remember is that the force.com platform is specifically different than traditional enterprise platforms in that there are new constraints that we are forced to accept if we want to “play” in their sandbox. That being said, there are already, existing and accepted fundamental practices that enterprise developers have been using for a long time simply because they help us take better care of our employers, customers and clients.
What practices and tools do you notice that are missing, weak, flawed or incomplete in Salesforce.com and/or Force.com?