Thursday, January 14, 2010

Wealth Takes Action Business Growth Seminars...

DevAmerica, LLC has started a series of business growth seminars that will be presented at the Greene Town Center starting this month. The purpose of the seminars is to try to help local businesses in the Dayton, OH area overcome some of the issues caused by the slowed economy by teaching them more creative ways to find customers. Currently topics include finding new customers using the Internet, how to market your business using email without spamming, and how to use social media to get more business. The full list of seminars can be seen on the Wealth Takes Action website at WealthTakesAction.com.

Friday, September 18, 2009

The View State...

Not too long ago I was working with a company whose specialty was auto dealer inventory management systems and providing solutions for getting their listings placed in auto search sites. While there, we were working on an application that would get auto listings from dealers and upload them into a central database that would feed multiple dealership website search results. The application was fairly large and there was a lot of overhead where the data was concerned. As the app grew, so did the amount of time it took to load pages when users – testers – performed searches. After wringing their hands and banging their heads, one of the developers asked me to look at the code and see if I could speed up the data calls.

As I reviewed the app and made a few changes to speed up the data, I was quite intrigued to find that, even with fast data calls, the pages were taking minutes to load. Having the data mindset, since that was what I was working on at the moment, I wasted about an hour trying to determine why the data was taking so long to get back to the site. Once I did a view source on the page, I wised up. The view state for the page was over 2MB. This got me curious and I started looking at other sites that were a bit slow, not just within that company, but others I’d been associated with or expected to be associated with in the future. It was pretty surprising how many of these sites were using view states that didn’t need to.

So to help others who could benefit from it, here are a few tips on optimizing the view state in .Net.

Don’t use the view state if you don’t need to. The view state is on by default. You can kill it using <@% EnabledViewState = false %>.

For pages you do need the view state, disable it for the controls you don’t need in the view state. You can do this by setting the EnableViewState property to false. This property is only available in server side controls (runat=server), so not all controls will have this property. This is how we resolved the issue in the app to get auto listings.

For large datagrids that are read only, it may be better to disable the view state and rebind the datagrid each time the page loads. If you do disable the view state, though, be sure you’re binding the datagrid outside of the IsPostBack check so the data binds each time.

As a side note, website owners, with whom you have no association, do not like to receive unsolicited advice about their sites, in this case the view state. Though sometime, along with a snotty response, they do make the suggested change.

Tim Hall is a Software Engineer, Graphic Designer, IT Manager, and SEM Consultant. He builds your websites for you through Alien Head Software Web Development. He runs this blog to help others be inspired by those who have inspired him.

Friday, July 10, 2009

Agile Development

If the project you are working on has a gantt chart... you probably aren't in an agile environment.

Saturday, June 13, 2009

Database Design - Customers

Most business applications have a customer table. As a developer it is all too easy to create a customer table and tie it to sales or orders. This approach can be short sighted. Before jumping in to table design ask yourself and the business some questions:
  • What is the life cycle of a customer?
  • When does a customer become a customer? When they place an order? What if you have the contact information before that? Is the customer still a customer or is it a lead?
  • If a customer hasn't purchased anything for 5 years are they still a customer?

Something else to consider- customer contact information becomes outdated very quickly. The Sales & Marketing institute found that by surveying attendees at seminars, 70.8% of the attendees business cards had at least one piece of information that was out of date.

While not all customer information can be validated, addresses can. Customer addresses should be routinely validated and the date and result of the validation should be stored.

Before you design that next customer table, think about the business process and what data might be in the table several years down the road.

Thursday, June 4, 2009

My Experience With Outsourcing...

There seems to be a ravenous trend to outsource just about every part of IT that can be outsourced. This appears to save companies money in the short term, but I wonder how much it really saves them in the end. For the sake of this post, I will only speak from my 3 meager consulting experiences (totally close to $60,000 in rework) with companies that have outsourced. All 3 were negative for the companies involved. For me, however, they turned out to be quite positive.

For about 7 years I ran my own software consulting company, DevAmerica. For the most part, I grew my company from small businesses needing a resolution to some IT issue they didn’t have the resources to resolve themselves. In this case, though, a large local business that had an IT department (we’ll call them Ben Seagar) had a tool written in C that compiled to about 500kb. They put the tool on a floppy disk to install it on all of their new computers to align them to their network. Yes, I know I’m dating myself. They needed to upgrade the tool and they outsourced it to another country. The off shore company decide the best solution would be to rebuild the application in VB6 and spec’d it out at about 4 months. Six months later the well-meaning people at Ben Seagar received a version of their floppy disk tool that was about 20mb. They put it on a CD and proceeded to attempt to use it to add new machines to their network. Unfortunately, the thing was chocked full of errors. After another 2 months of fixes that introduced new errors, they called me on a referral from another client.

Now, I have to tell you, I tried with all my might to fix this application, but after tracing the twelfth variable named something like a, or j, or variable3, or IHaveNoIdeaHowToCreateMeaningfulVariableNames, I gave up and rewrote the thing, with Ben’s permission, in C. Three weeks later, they put it on a floppy disk and were happy for the next year or so, until Dell stopped selling machines with floppy drives.

This is one of 3 similar contracts I had with 3 different companies, specifically because of outsourcing. I know 2 other consultants with analogous stories. While scenarios like these have provided my friends and me with good paying contracts after the fact, they’ve also put many other friends out of work and caused bigger problems than they’ve solved for many companies. Don’t get me wrong…they were outsourcing when they contracted me to fix the app, but they also paid for something twice that their IT people could have done properly and done quickly.

I realize that all outsourcing incidence do not end up this way, but all told, it’s better for companies and the economy to user their internal IT resources if they have them, and let IT do what they love to do. Trust your IT departments. I’d be completely satisfied to spend the rest of my consulting days contracting only to smaller businesses that do not have IT departments.

Tim Hall is a Software Engineer, Graphic Designer, IT Manager, and SEM Consultant. He builds your websites for you through Alien Head Software Web Development. He runs this blog to help others be inspired by those who have inspired him.

Tuesday, June 2, 2009

Welcome to DevAmerica's Blog...

I have had the great fortune over the past 20 years as a software developer, to work with some exceptionally talented developers and engineers; a few of whom I would consider experts. The things I have learned from these few have been invaluable to me professionally and personally. Because I recognize what a contribution those people, and their knowledge, have made to my career, I have started this blog in hopes that others might learn as much from my karas as I have. The bloggers herein represent some of the brightest minds, and interesting personalities, that I have had the opportunity to work with. This blog represents my trust, admiration and thanks to them for the help and inspiration they have been to me over the years.

Tim Hall is a Software Engineer, Graphic Designer, IT Manager, and SEM Consultant. He builds your websites for you through Alien Head Software Web Development. He runs this blog to help others be inspired by those who have inspired him.