CUSTOM APPLICATIONS

We can design and develop stand-alone and web-based applications using the Microsoft Windows/.NET platform from the ground up, working independently, with 3rd parties and as part of your development team.

Our basic development toolkit includes:

  • Visual Studio 2010
  • Microsoft Expression Web/Design
  • C#.NET
  • VB.NET
  • ASP.NET
  • Microsoft Office Automation including Microsoft Access
  • Microsoft SQL SERVER
  • SQL Server Reporting Services
  • Crystal Reports
  • ...other

Over the years we've also worked with a number of different development and database tools including Visual Basic, Microsoft Access and FileNet Document Management.

We're also moving deeper into web and mobile development and have plans to incorporate more open source development tools and plans to begin application development in the Android environment later this year.

Custom Applications:

The size and scope of a new application is all important. In a perfect world whenever your company runs into a new need that an application can solve, you'd be able to point to a reasonably priced existing online application and download it on the spot. OK, we're not in a perfect world.

Assuming that this is not the type of application that can be completed in a few days, it goes back to the issues of size and scope.  There a lots of questions that need to be asked in developing a new piece of software.  Here are some that might be worth of consideration:

  • Is this an internal application?  Will you clients have access to it?
  • Stand-alone or web based?  Maybe even time for the cloud?
  • Is it for commercial distribution?
  • How will it be supported when it is completed?
  • Are you committed to having the application developed correctly?
  • Are you committed to having the application developed correctly?
  • Are you committed to having the application developed correctly?

That isn't a browser hiccup but the reality that if an application is going to be integral part of your company's operation it needs to developed in such a way so that it can be reliable, modified as needs change, straightforward to use and an absolute joy to support.

Focused  - Simple - Reliable - Secure:

Developing a new application can be a very expensive proposition, not only in dollar costs, but also in the time of all those involved in the development process and in the lost opportunities if the application does not solve the problems it was written to solve.  Add to that, the additional maintenance headaches down the road and the time and effort to rework the code.

Especially for a first release it's important to stay focused.  Make sure that you target the features that you absolutely need.  Make it rock solid and if security is an issue may sure that its baked throughout the project.  It's much easier to add those features that didn't make it into Version 1.0 if the foundation is strong and can easily support future growth.

Sturdy Foundation:

In developing a custom application, it's a given that the specifications should be clearly spelled out - if done right you get a three-fer as the specs will not only define the blueprint of the application, but they will also be the mechanism where the application is tested and documented.  Maybe you can even get a four-fer if you consider that the specifications could also define the error handling that's integrated into the application - and yes, do not skimp on the error handling.  Some estimates for application development define 40% as being involved in error handling.  Will you need that much? Probably not, but again, that goes back to the size and scope of the project. You have to weigh the cost of the application finding an error opposed to having the application in production and running into incorrect results and undescriptive system error messages - not to mention the time needed in tracking something down.

If the application will be distributed to clients, error handling obviously becomes even more important.  Graceful exits are always better than obscure messages.

Having an error log file, also provides some insight into how the application is running since it could also contain messages that are more informational. The other nice thing about having some sort of error logging system is that it is something that can be shared by several programs.

Ownership:

The users of the final application should have an ongoing vested interest in the application from the first specs through testing, implementation and production. There's a cost in time which may not be readily available - everyone's always busy doing something else, but its time worth spending.  Like much in developing a new application, the time spent up front can be more than accounted for when an application goes into production - and the changes that will likely be made throughout its life cycle.

Post Production:

Make sure that you've also planned for the care and feeding of a new application.  It's important to have a systematic way to have errors reported and how those errors are handled through resolution.  Have a regimented system of incorporating new changes, testing procedures and how new versions are implemented.  Also, keep both the internal and external documentation up to date.

It's also worthwhile to have a stand-alone play environment for the application where new users can get the hang of using the system with dummy data. That stand-alone environment can also be used to flesh out new UI, new logic - basically becoming a very dynamic whiteboard.