Recently I’ve had a colleague having fits trying to optimize database access to an application that he inherited from a guy who inherited from a guy who…you get the point. I’d suggested speed isssues in indexes to him previously but he told me that several DBAs had looked at it and believe it to be working appropriately. Ok. Well I looked at it and was surprised to find that indexes were not only incorrect they were non-existant other than the primary key index and foreign key contraints.   At that point I recalled something from my subscription to the Sql Server Central newletter in an article(Sql Server Central Speed Part 3) which put a nice explanation in to using indexes out there.      I forwarded it to my friend and his problems melted away after months of headaches and no answers believing his problems not to be database related.

Understand the difference between a DBA and a Database Developer.

Software developers need to understand when looking for help there is a difference between a DBA and a database developer.   Yes a person could be both but typically people come down wearing one hat and developers mistake a DBA for someone who actually knows something about tuning a SQL database.     They might be able to make the actual SQL software pur and perform better but they might not know a thing about appropriate indexing for speeds.   Although they can tell you hey this index is eating up a lot of space or causing a lot more rewrites and therefore hurting my server they can’t actually speed things up.

Point being that just because a person with database in their titles within your organization tells you it’s right doesn’t mean as a developer you just have to say “ok it’s right”.    Having database in a title doesn’t make you an expert on all things database just like people with developer in their title might not know a thing about developing other than drag, drop and deploy..    My suggestion to all software developers is subscribe to a great website like SQL Server Central and read over their newsletter articles because that one 10 minute read you did 6 months ago might save you from months of pain in the future.

Speeding Up SQL Server Part 1
Speeding Up SQL Server Part 2
Speeding Up SQL Server Part 3

In the last year there’s been quite a bit to do with Silverlight, MVC and JQuery.   I’ve been fortunate enough to be exposed to all three in my day job where as many might not get to touch any of them outside of personal exploration.   As we’ve progressed through our learning experience in using these three either alone or in combination it’s become my opinion that the only caseswhere Silverlight LOB is better falls in to the following situations:

  1. You want a thinner thick application that also works over the Internet.    Silverlight LOB is sort of like the Taurus Judge of the computer world.  The Taurus judge is a pistol that also shoots shotgun rounds.   It’s not as good as both but it serves the purpose of both decent enough.  
  2. You want a web based application that can operate in a partially disconnected environment.    As if Microsoft was reading my mind they magically gave a presentation at Tech-Ed concerning disconnected Silverlight and posted a sample up on Codeplex.   So they definitely see the value there as well.

Noticed I said these are the situations where Silverlight LOB is better.    It’s not necessarily that the MVC + JQuery stuff is better in other situations but it’s certainly falling more in lines with standards.    It also doesn’t force users to install a plugin on their browser like Silverlight does.     However with HTML 5 emerging and JQuery constantly improving you can produce some excellent MVC + JQuery applications that perform much like the Silverlight LOB applications do.   

All this being said I must say that our Silverlight tools we’ve produced have been very successful as have our MVC + JQuery tools.   Everything is service based so a new client for either application is always a quick possibility.    I think careful consideration over which approach better suites the long term objectives of the client combined with their IT infrastructure will guide development teams towards the appropriate choice.   Remember to consider things like the following:

  • Can they install a plugin?   Some IT Network Infrastructure teams won’t budge on this.
  • Does the application need to be installed like a desktop app?
  • Must it run on IPad?   Silverlight can’t at this time.
  • Must it be available offline?
  • Will we be able to find someone to maintain this?   At this moment it’s hard to find people who’ve used Silverlight in my hiring market.

One big plus to working with the Silverlight LOB application is on a personal note I was able to quickly create a Windows Phone 7 application called Pocket Brewer.   So it prepared me for going in to Microsoft’s mobile market.

I recently attended a Birds of a Feather session at Tech Ed 2011 in which the discussion was “Is Scrum Better for My Projects”.   A birds of a feather session is simply an open forum where a bunch of people interested in hearing from their peers come to discuss.   There’s a moderator and a facilitator who help discussion flow as well as encouraging experienced members of the group to come up front to answer questions.     This particular discussion quickly changed from “Is Scrum Better for My Projects” to “Why Does Scrum Fail To Launch” I guess you could say.  

For me this hits home because my first experience with an Agile methodology was very challenged as well so I was really engaged here.   In the Birds of Feather discussion several guys who seemed like very experienced project managers and developers got up to give their opinions.    The first of which was a fellow who noted that management invading their daily stand-ups to attempt to get schedule updates were seriously challenging them.   Additionally the managers said they weren’t going to ask questions or interfere in any way but of course they did.     Another gentleman stood up with a comment about removing distractions.   He also pointed out that management needed to completely understand the reason for the stand-up and that they should schedule a different meeting.    The managers should also understand that the stand-up was for the team.

So far it sounds like we’re making some progress right?    Well I think we did on the whole.   However after about an hour the moderators asked the panel to note one thing that they think is most important to do first to preventing scrum from failing. The two above gentlemen and another who showed up a little after all said “create a backlog”.   For me it was like “wait what?” but the session was over and that was the closing.

This is wrong.    These guys were very intelligent and experienced and had a great discussion but when put on the spot about the number one thing to prevent failure they said backlog even though they started with management not understanding.     To me based on my experienced combined with their stories the problem is definitely management not understanding and project managers not having crucial conversations with these managers as risk mitigation to be sure their software development methodology would succeed.    Many IT managers who’ve been doing the same job since before Agile got big still think Waterfall.     Unless you get them to understand why you’re doing what you’re doing they’re always going to step on your toes and your Agile/Scrum will be challenged.

Scrum seems to fail often due to project managers failing to create a common understanding about how the software is going to be developed.     You can’t just send them an email with a link to a long list of boring Scrum/Agile articles; you have to do true risk mitigation and make sure they understand how it works.    Further you need to have them agree ahead of time on their update schedule as well as the contact point for quick updates which is NOT THE DEVELOPERS.    This should all be set forth before the project ever begins.      Finally if managers cross the line or are replaced through the course of the project you need to have the crucial conversations necessary to facilitate understanding.      Management understanding and buy-in ahead of time will make the adaptation of Scrum/Agile far more likely.

I realized a few years back that unless I wanted to be only a software developer for the rest of my life I needed to grow professionally beyond just staying latest and greatest in software development. Lately I’ve been noticing a number of my peers having decades more experience and still basically doing the same job. There’s nothing against that as it’s a high pay, low stress profession that allows you to solve new problems every day. However I got in to software development because I enjoy the challenges but my time working with others who are more experienced made me realize that eventually it’s all the same thing even with the business problems you have to address.   I’ve thought of earning an MBA(still am thinking) but something came upon me that allowed an opportunity to grow right now.

To me it seemed if I really want to take it to the next level then I’ll need to move in to project management or architecture and I was lucky enough to move in to the project management sort of role around a year ago. Being double lucky they’ve enrolled me through the Business Project Management Program at LSU and for me it’s really added so much perspective in my day to day as a software developer let alone my growth as a Project Manager.  The courses are designed to develop you in project management as defined by the Project Management Institute which is “the” organization for the promotion of project management as a profession.  Essentially if you learn to manage a project their way you can manage a project anywhere for any business sense.  But that aside I have to say that as a developer you gain so much more insight on goals and objectives within an organizational structure.   Things that previously made no sense about why certain things were being done become clear or you at least understand the possible reasons your enterprise might be doing what they’re doing.

To me becoming skilled as a project manager is also exciting because not only can I manage IT and software development projects but I can also manage any project in any business beyond IT with their framework.   By pursuing this extension of my skillset in to this field I’ve given myself a world of new possible opportunity where I was presently pretty much set on being a developer.   You might think “Does this mean you’re thinking of leaving software development?” and the answer is no but options for consideration are nice to have.   I love developing software but I’ve had friends talk about their fields and thought it’d be exciting to work in that direction.   As a skilled project manager you have a niche that allows you to move across industry beyond a certain functional area.(IT)

As I said the program at LSU allows you to learn as it relates to the PMI but it also bridges gaps between yourself and other professionals.   For instance in the construction business you have planners & estimaters who consider many of us software developers so alien we might as well be from Mars.    However when they saw PMP study guides and material in regards to Project Management they instantly had something to talk about from their perspective.   On the other hand I found myself better capable of discussing software development with them.  So instantly this was positive and showing to be a worthwhile investment.   Further in later discussions

I’ve recently been doing a lot of Silverlight development at work.   Silverlight is great for rapidly produce some very useful applications that meet a lot of challenges we couldn’t solve well with ASP.NET or WinForms in the past.   It’s like the best of both worlds in that you can develop WinForms like applications and deliver them over the Internet.  Well suddenly it recently became an issue that we needed to run these apps on an Ipad.   Sales and executives wanted to be able to show and this was a risk we never thought of in planning so it was a big uh oh.   I don’t know much about Ipad and research showed that Apple is big time anti-plugin due to their love for HTML 5 and standards in general.   So I’ve been falsly reporting for a month now that you can’t get these applications to run on an Ipad.

Why is it false?   Well one of our guys not to be deterred opened a ticket with our network squad.  Now technically you can’t install and run Silverlight in any fashion on an Ipad at the moment.   However one of our Citrix gurus quickly realized that this was not true and we could get the app running through the XenDesktop. Here is a link to an article where people are discussing it. I was pleasently happy to be wrong as I had began scheduling to have one of our developers ramp up on estimating how long it would take to replace the Silverlight interface with an ASP.NET interface. Our applications are service based so it wouldn’t have been a huge deal however I’ll take no additional hassle any day of the week.

Sometimes it’s good to be wrong.

I guess I can officially call myself a Windows Phone 7 developer.   Over the Christmas holidays I had some spare time and started developing my own app for beer home brewers called Pocket Brewer It actually took a while longer than that as I had to learn all the fine points in getting an app polished to go to the Windows Mobile Marketplace so it didn’t get officially published until around February 3rd.

I’m personally very excited about Windows Phone 7 as a developer who spends a great deal of their time in the Microsoft .NET platform. In my day job I spend a great deal of time using C#, Silverlight and web services built in Microsoft’s Visual Studio 2010 environment. What this means is I was able to develop the app in far less time than trying to get up to speed in working in Eclipse for Android or going out and buying a Macbook so I can build IPhone apps. Earlier last year I did take a stab at creating an Android app however it was a painful process because I had to dig for things I usually can go to without a moments thought in Microsoft’s tools. When you’ve only got 3-5 hours a week to spend on something you don’t want to spend so much time digging. I think a lot of good things will be coming for Windows Phone 7 users from all of us .NET developers.

I think it was 2002 when I registered jerryodom.com.   I remember thinking about should I buy one or the other and not yet being educated in how all things server worked I didn’t realize I should buy BOTH.   Well a few years go buy and jerryodom.com starts getting more and more traffic.   Friends and family are finding it on Google for various Baton Rouge, Louisiana, etc things and it’s getting noticed.   #1 question was “why didn’t you buy wayneodom.com because you go buy Wayne?”.  Good question, so I go to register it and it’s taken.

For years another Wayne Odom owned and didn’t do much with the domain and of course people tell me they tried to go to my website and it was some other guy at which point I explain and we’re back to the question.    Well finally with the help of snapnames.com I was able to purchase the domain when the other Wayne Odom failed to re-register it!

So one and all you may go to www.wayneodom.com and yes you’ll still get here.   You can email wayne at wayneodom.com and yes you’ll get me.   All is right in the world and I’ve managed to correct that error in my life.

One thing I want to start doing with this website is posting a little on software development.    I sometimes figure out difficult problems as a software developer and want to remember them or just put them out there for other people to find.  A rather vague and not well documented problem I ran in to while deploying a Microsoft Silverlight client based application’s ASP.NET website was a configuration issue having to do with the server’s permissions.     When testing the connection for the new application I got a “cannot verify access to path” warning in the “Add Application” dialog.   It also gave me the following longer explanation:

The server is configured to use pass-through authentication with a built-in account to access the specified physical path. However, IIS Manager cannot verify whether the built-in account has access. Make sure that the application pool identity has Read access to the physical path. If this server is joined to a domain, and the application pool identity is NetworkService or LocalSystem, verify that <domain>\<computer_name>$ has Read access to the physical path. Then test these settings again.

 It still let me setup the website but when I browsed to it I got a different exception from the website.  It was giving me unauthorized exceptions.    “Access is denied”.   It was confusing as I’ve setup websites in the same manner before on the same box and I’m an Administrator.   I started comparing configurations and permissions on this application with another similar application until I discovered that the only difference was in the Advanced screen found through the Security tab of the website folder’s properties.    The owner name had been set to my name where as typically it was set to the “System” or just the “Administrators” group of the server.   I changed this and everything worked.   Very confusing and I wish I could identify what in my process was different from the dozens of other times I’ve setup websites.

I’ve read a number of comparisons between Android, Iphone and Windows Phone 7. Amazingly enough Windows Phone 7 is one of the first new and great smart phones to get negative press. Not because the phones are lacking but because people just don’t like Microsoft. They’re still the “Man” that everyone wants to rage against. Everyone has an opinion or wants to throw some numbers out there for analysis only to have 200 comments on their blog post pointing out that they’re going apples to oranges in many of their numbers. Well I have a perspective that many might find interesting as a quality show in favor of the new Windows Phone 7 phone.

The Wife Test

My wife wanted an Android phone badly.  She had heard about how cool they are, seen the commercials and how easy it looked.   In her mind it was awesome and yes they are incredibly awesome.    I wanted a Windows Phone 7 device because I work primarily in their development environment in my day job.    To me it was an opportunity to create some apps and play as a developer.     So for Christmas we headed down to the Best Buy store where my brother in law works to buy our new phones.   We went home with my new HTC Surround and her HTC Aria that day.  I had to go back to work but left both phones at the house.   Within 4 hours my wife wanted my Surround and hated her Android so the following day I brought her Android back and got her the Windows 7 Phone.

Why Did this Happen?

Microsoft isn’t stupid and clearly saw the advantage to the Iphone platform is that it’s really easy to get going and get going well on the things people worry about most.  The Android is very customizable and makes sense to someone who’s experienced with smart phones.   I was able to correct many of the things she had issues with and was amazed at the extra options of the Android at first however later on I figured out that the Windows Phone 7 phone set it up for you FIRST but with experience you know you can get in there and customize later.     She also found the styling of the start menu and the navigation of the Windows Phone 7 to be right on and easier to pickup.   Even though I was able to say “look it works now” she’d made up her mind and I feel like the “want it now” culture we have will make Microsoft products a big hit with the sweet spot of the populace.

I feel like Microsoft has put themselves in a good spot to compete and build market share with a little time.    The product is solid, easy to use and fun which will create positive buzz from common users like my wife.  The number of apps being built is huge and their development environment is very easy to pickup for .NET developers who haven’t done mobile development.   They will compete well in 2011 and in the future.