Thursday, January 24, 2008

How Dinosaur Web Developers Can Regain Their Shine: Step 1

Last week I posted that a large number of us that have been web developers since the first Internet boom are becoming dinosaurs.  I may have said COBOL programmers, but it's the same thing :). 

I also said that one of the things we need to learn in order to catch up is CSS.  Now, we all used to think we knew CSS, and we did they way it worked at the time, in the browsers of the day.  Through trial and error we learned what you could and couldn't do that would look consistent across the major browsers of the day.  Along the way we learned to stay away from things like dynamic positioning, you were pretty sure to have things look bad unless you wrote a TON of special code to account for browser differences.

Well, the browsers have matured along with us but while our hair may have thinned or waistlines grown the browsers have become more standards compliant.  Now the MS bashers will say that IE is still not compliant and sure, there are issues, but overall, wow, they all do a lot of cool stuff consistently now.  You might say that while we are moving steadily toward middle age, the browsers are finally just able to buy us a drink.  Positioning of elements, cool dynamic looks and even whole page layouts can now be done using nothing more than CSS and some images.  Better yet, it looks the same in all major browsers.

The longer we wait to learn the new standards, the harder it will be for us. 

mix Are you not convinced yet of what can be done with CSS?  Take a look at the site for MIX08 and then look at the exact same site with a different (and plain) stylesheet.  Pretty amazing huh? 

 

 

 

csszengarden Still not convinced?  Ok, check this one out: CSS Zen Garden is a site created to demonstrate the capabilities of standards based CSS design and provide the resources to help you do it.  Play around with the site by choosing different designs and you will see what I'm talking about.  There are samples of all of it along with links to plenty of other resources.

 

 

 

So, do you think you have what it takes to use standards based web development already?  If so then head over to the restyle site and enter the contest with your cool design.  You can get a trip to Vegas out of it and hear some guys named Ballmer, and Guthrie talk about cool stuff.

Wednesday, January 23, 2008

I WILL be an MVP

Now maybe this isn't a practical goal but I truly think it is possible for me to be named a Microsoft MVP in ASP.NET when they are announced in December.

Wanna know how I'm going to do it?

Basically I'm doing the same things that I've been preaching that we all need to do:

  • Learn the newest stuff
  • Evangelize to peers
  • Be active in the community (online and in person)
  • Make yourself known
  • BE AN EXPERT

So that last one is the hardest, but I'll talk about that a little later. First I'm learning the newest stuff and catching up on stuff I've fallen behind in. For me this means getting up to date on dynamic positioning, learning ASP.NET AJAX and finding the limitations with Silverlight and trying to find ways to get around them. It means not just reading about these things online but also watching videos, reading books, building sample apps on my own time and also trying to convince my employer to use them in production. I'm well into this phase already, the only trick is going to be able to keep up the momentum.

Evangelizing to peers is something I've always done so that's not a hard one for me. When there is something I'm passionate about everyone around me knows it. I tend to talk a lot when I find something cool and want everyone else to see how cool it is.

Being active in the community is also not a hard one but takes a time commitment. For the last couple of week I've been all over the forums at asp.net answering questions about asp.net left and right. I've also learned a few things as well which is a great thing about forums, you may have a solution but someone else may know of a cleaner / cooler / more elegant solution. The in person community is a little harder just because of the time / distance issue. This is also something that I've done in the past so I need to get back at it. I had a contract gig at the Cleveland Clinic that was only a few months long but still was able to get an internal ASP.NET monthly lunch discussion going which had pretty good turnout. I also try to get to the .NET SIG at the MS office but that's about it at the moment. I really need to offer to speak at one of these groups to really push me to get involved more.

Making myself known kind of comes along for the ride if you do the "be active" item from above. You you are active enough and vocal enough then people will notice. You just need to make sure they notice you for your wisdom and insight instead of for your ignorance and stupidity.

Be an expert. This one is hard to quantify. What makes a person an expert? Is it a certification? Nope, I've seen plenty of people disprove that. What about an advanced degree? Again nope, that may give you academic knowledge but I don't think that makes anyone an expert. Personally I think you are an expert when someone else calls you one. Preferably numerous people. You can't name yourself an expert and expect it to mean anything unless you have people that truly think that you are one. Some people call me an expert in .NET web development already but I don't think I'm there yet. I will be before this year is up though, because I WILL BE AN MVP.

Monday, January 21, 2008

Well, Maybe Cleveland Doesn't Get The Shaft

Ok, so my earlier ranting must have paid off. Well, maybe not but at least I have answers to some of the stuff. I was right about one point, Cleveland is NOT getting an MSDN event this quarter. The reason is that we are getting a launch event which is bigger and full of sessions like what's at MSDN. And the launch event has been moved up about two months earlier than they had originally said, to March 13th. So now it's only about two weeks after the first event, instead of three months.

So maybe it's not all that bad up here after all.

What is a RIA?

I'm going to spend a lot of time over the next few months talking about RIAs so why don't we get a definition out of the way now. I used the word RIA in my last post and received some feedback wondering exactly what it meant so here we go.

RIA stands for Rich Internet Application. At times you will also hear it defined as Rich Interactive Application, particularly by Microsoft, since most of the aspects can also apply to desktop apps and in some cases an online RIA can be ported to work on the desktop pretty much as-is (via XAML). Wikipedia has a pretty good overview which I highly recommend as a starting point in learning about them.

In short a RIA is basically a front end to an online application which is user friendly, graphically 'pretty', user friendly, responsive and user friendly. Did you catch on to a theme there? If not let me spell it out for you U S E R F R I E N D L Y. No amount of graphics or flashy interface will make an application user friendly without thought into how many ways the user will use the application, what they would logically expect it to do and then making those things happen.

In my opinion a true RIA isn't just fancy graphics and cool animated buttons, but an interface that is clean, intuitive, responsive and accomplishes it's goals without overloading the user with options and abilities that they don't want or need. I'm not saying I like Jacob Nielson's basic text layouts, far from it I'm just saying that adding animation or drag & drop or whatever just because you can instead of for a real usability concern just annoys users and makes the app less user friendly instead of more. Both animation and drag & drop and all the other niceties are very useful and are needed in some cases, just not all.

Here are a few other sites and articles with some RIA info:

This is only a sample of an information base that is growing daily. In future posts I'll talk about some of the technologies, methodologies and such as related to RIAs.

Friday, January 18, 2008

Web Development Is Dead! Long Live Web Development!

Everything is about to change.

Some would say it already has, I would argue that the changes that have taken place in our industry during the last 5-10 years are nothing compared to what's going to be happening over the coming few.

New technologies combined with better tools are making the kinds of things possible that we laughed at when sales people / clients suggested them a few years ago. Silverlight, Flex, AJAX, Web Services, Ruby are just a few of the technologies that are enabling this change. Tools like the Expression Blend / VS 2008 combination allow unprecedented cooperation between designers and developers. Now we CAN do what the designers want us to do, if they can draw it, we can build it.

The time of the RIA is fast approaching. The seventh principle of Web 2.0 as written by Tim O'Reilly in 2005 requires "Rich User Experiences". Regardless of what you think of Tim O'Reilly, Web 2.0 or 'cool' websites, it's happening now. Even the corporate world is noticing. I work for a major Japanese electronics company building a mundane management application and a couple months ago a senior executive mentioned Web 2.0 and mashups. This is not going to be a passing phase.

I know there have been some RIAs created today but they are far from mainstream. Nearly prediction list for 2008 by prominent web development bloggers name 2008 as the year of the RIA. I agree. I think it is time for 'classic' web developers to learn and embrace the new technologies or risk becoming outdated. Those of us who were writing cutting edge apps in the first big Internet boom (1998-2000) risk becoming the online equivalent of COBOL programmers unless we get off our butts and start learning again. While it's great that we know the intricacies of HTML, CSS, JavaScript and the .NET framework, now we need to learn XAML, JSON and some design skills.

Most importantly we need to learn how to think differently. All the rules we knew about what could and couldn't be done in a browser are being thrown out the window. Unless you want to be the one that is dismissed as 'stuck in the past' and be passed up but the young kids with all the cool ideas (exactly who we were ten years ago) we need to learn the new capabilities and learn them fast. Just think about it this way, how do YOU feel about COBOL programmers?

Web Development Is Dead! Long Live Web Development!

Tuesday, January 15, 2008

Dream Job: Myth or Reality

If any of you are like me you've changed jobs a few times. Maybe more than a few times. Sometimes this was not our choice (read, web company circa 2001), most of the time however job moves are in part, motivated by a search for the perfect job: The Dream Job.

There is definitely a problem with most good programmers I know that we get bored easily. As soon as we know everything there is to know about the site/product/industry we are currently in, we want something new. At first this is just an idle though and then over time it turns into a desire to 'right' things and you move on. This is why I've spent a lot of time as a contractor, it's easier to change jobs without hurt feelings and such.

But what I'm really writing about tonight is the 'Dream Job' that we think we lost out on at some point early in our careers. For most of us there have been times where we had to make a choice between two (or more) companies, each with their draw. We made our decision and hopefully were satisfied with it. But you always wonder about 'what could have been.' Or maybe you did work there and for some reason left it and always wish you were still working with those people or in that industry.

Have you ever gone back and looked at the company again? I have. A couple of times in fact.

For me, there was this company I worked for back in the Internet heyday, times were good. I traveled the world writing cutting edge code and strategizing cool solutions for clients. We had writers, designers, information architects, programmers and all the other things a company like that should have. Times were good.

Then came the downturn and the owners decided it was a good time to split. No more company. No more good times. I always dreamed of that job, that perfect job which was no longer. I found new work quickly but it wasn't the same. I stagnated. No more cutting edge. No more cool.

Eventually I left this gig for a new one, in search of the perfect job, as always. This job was much better technically. It definitely honed my skill from a technical perspective. Real experience in OO programming and some of the intricacies of the .NET framework. But it still was lacking in that one criteria that the perfect job must have: cool. After a while I left this job too, still looking. After a couple of other gigs though I came back. What this job lacked in cool it made up for in tech.

And now the dance begins again. An old co-worker, now a partner in a new incarnation of that old dream job, called me the other day to basically offer me a job. We talked about this a couple years ago as well and while the company had cool it had little to no tech. This time though things seem to be different. I went and talked to them again and found that they are doing some OO development, some multi-application integration, some SharePoint work, some e-commerce work. And it still is cool.

I would be writing specs, managing off-shore development, writing code, architecting solutions; all good stuff. I would be encouraged to stay cutting edge. I would get to help steer the technical face of the company. And it is cool.

Would this count as a dream job? Would I burn bridges if I left the good job for the possible dream job? I still need to talk to both the new people and the old people but this may be a tough decision. Very tough.

Stay tuned, I'm not sure what I'm going to do.

UPDATE: Well, it may be an easy decision after all. I'm expensive.

Monday, January 14, 2008

Why Does Cleveland Get The Shaft?

DevCares: Don't care about Cleveland
MSDN Events: Frequently a non-event, late when it happens
Launch Events: So long after the actual event they've already announced the next version

Why does Microsoft not care enough about the Cleveland market to get events here timely or at all? Is there not a large enough developer base here? Is it that the developers that are here don't participate enough? Does the entire region use LAMP instead of MS solutions?

I don't think any of those explain what the issue is. Josh Holmes and the ArcReady events are here every quarter. Jeff Blankenburg comes to SIGs and is very responsive (scary fast in fact). The last MSDN Event had so many people they were turning them away at the door.

Maybe my perception is wrong but it seems that Cleveland is not only a minor market in MS eyes but even an afterthought. What can we do to change that? If we all bug our evangelists with questions and requests will that raise the chatter level high enough that the corporate types will think there are more of us then there are? I'm not actually saying we should do that, I like that Jeff and Josh are responsive and wouldn't want to annoy them, too much anyway.

Is is possible that the person in charge of our region's MSDN events and DevCares events just doesn't have time for Cleveland? I do happen to know that it is the same person. The company line on why no DevCares events come to Cleveland is that no local partner has stepped up to host them. While I believe that is true, how hard have they tried? For all I know they are trying their collective butts off and still no one from Cleveland will do anything about it. If that's the case then we all need to pressure our employers to play nicely with others. If it's that they only asked one company who said no, then they need to work harder (please).

If anyone reading this rant knows anything more about why Cleveland gets skipped please post it and maybe we can collectively figure out a way to get more attention.