Home
  Open Source Development

  Windows Development

  Databases
  Languages
  Process and Methodology

A properly maintained tool box is essential to any endeavor.   The more tools you have to work with, the better the final solutions will be.    I have been fortunate to have worked on a lot of very interesting projects over my career and gathered a lot of tools along the way.

 

Open Source technologies provide the basic building blocks for most high end applications without the costs associated with proprietary solutions, and there are hoards of people still working to make the "core technologies" available to everyone so we can focus on designing the solution and not the components.

 

Microsoft still has a strong following no matter how popular the Open Source technologies get.  They have some powerful tools and in many cases have made these available for little or no cost.  Just look at the SQL Server Express.  It has all the bells and whistles needed for a desktop client and is distributed free of charge.

 

When it comes to database, I have found that you have software product developers who have a rudimentary understanding about databases, and you have IT programmers who know a lot about database, but are limited in their application development skills.  When you get the chance to develop database tools, you get experience in both disciplines.  Knowing what the database can do and what it cannot do is critical to proper application design.

 

Which language you choose when developing software is only important in how that language impacts the development and deployment environment.  In the end, all computer languages compile down to executable code in one form or another.  Being fluent in multiple languages allows me to work with teams working in a wide array of languages.

 

Let us not forget that the methodologies and processes we use to develop software can impact the final outcome.   I have worked with a lot of shops that just never got around to using source control, developing test suites or even keeping documentation on what they were building.  Capturing requirements makes it a lot easier to build a piece of software.