It looks like it’s official: I’m FINALLY moving my blog over to my company’s blog: http://www.proace.com/blog/
I’ll leave this one up for old time sake, but I’d like to move more towards a professional and very technical blog so the days of “creative writing” are definitely gone (for now at least).
I was in Utah last week visiting Neumont University and had the privilege of talking with the student body about a variety of topics. I introduced the upcoming SnapDragon Framework and launched into a huge discussion regarding career advice and software development patterns. It was pretty unexpected but I honestly really enjoyed our talk. I wanted to spend some time reviewing some of the topics we went over.
Obviously I began with introducing myself and ProAce. Afterwards I went over the same basic presentation that I used for Austin Code Camp. I did elaborate on the examples, however, and gave a demonstration of a prototype of the application blocks that I have been ranting and raving about. I prototyped a Content Management System application block and gave a quick 5 minute example of how you could enable managed content in any MVC application. I will be following up with a post about this in my technical blog within the next few days.
The dialogue I had with the students regarding their careers, ProAce, and patterns was stimulating. We discussed implementation, the importance of patterns, and really just has a great back-and-forth about the reality of the industry. One of the more notable parts about this trip, however, was the wide variety of students that I met after the presentation. There was a large amount of interest in my company and I had the chance to meet a great number of prospective students. Very exciting!
I’m very grateful for my close relationship with the University and appreciate the opportunities they give me to speak and weigh in on important issues. I had a great time and was able to wrap up the final tasks with our enterprise project team (the primary focus of my visit).
For those of you that missed the presentation and would like to know what was covered, I will be doing a followup post very soon. Please check back for updates!
I recently retweeted a comment from Brad Wilson about how much damage WebForms has done to the typical developer’s knowledge of the web. I thought he had summarized it quite while and I wasn’t going to offer my thoughts on the matter but it’s been on my mind for quite a while and I feel like it’s time for me to weigh-in on this situation. It turns out that I have quite a bit to say.
Before I begin, I will note that I have been working with WebForms since the early days and have truly appreciated the rapid rate in which the platform allows you to develop certain applications (or pieces of applications).
The individual adoption of ASP.NET MVC is no easy thing, so it should come as no surprise that an organizational adoption of ASP.NET MVC is not a walk in the park. The WebForms platform does a great job at providing a set of Rapid Application Development tools to get your job done quickly and somewhat easily…depending on the task and the team you’re working with. When you begin running into rendering problems or third-party integration problems, a deeper understanding of the toolset is required and unfortunately most entry and junior-level developers just don’t have it.
Individual Adoption
The transition probably isn’t the same from one person to the next, but I can make some generalizations based on my personal experiences introducing the change and helping through various online communities. These generalizations have been mostly made by helping people transition as they tackle more real-life applications using MVC. As with any new technology, I strongly recommend the “Hello, World!” approach but not everybody agrees with me.
I wanna go fast!
The initial introduction to the concepts seems to go over quite well. You’re not sure if they understand it or just want to get their hands dirty by playing with it. They’re not sure if they understand it either…but it’s a new technology and they’re excited to get their hands dirty.
Where’d my magic go?
The first question is asked: “How do I access my <some control ID> control? It’s not showing up in intellisense.” Be careful here, you’re about to tell them everything they know about the web is a lie! You carefully deliver the bad news and show them some examples of posting information.
So…I have to reinvent the wheel?
This is a question that I get a lot and it’s taken me a while to understand how to respond to it. Now, it may be different with every person but I’ve found that this question gets asked for a few reasons that all seem to boil down to this: the purpose of the ASP.NET MVC framework has not been properly explained and a proper comparison between MVC and WebForms has not been made. It should be clear that MVC is an alternative to WebForms (not a replacement) and that the entire development approach is different.
“But I could do this in like 5 minutes in WebForms!”
Sure, that might be true. In fact, your organization might not be suited for MVC development and this might be the right time for you to realize that. However, if you’re like me then you know that while the ramp up time might be a little rocky, it’s going to benefit you in the long run. So you explain the differences one more time and kindly ask them to just “give it a shot.”
Where’d my magic go? (Again)
“OK, so then how would I access my <some control ID> control?”
Even though you’ve explained it quite a few times by now, you’re bound to be asked again. In fact, don’t be too surprised if this continues to happen for quite some time.
As with the adoption of anything, you need a roadmap. You need clear goals and a vision to follow. The road is rocky at first and you’re going to need that vision to keep you moving.
Organizational Adoption
The damage has moved far past just affecting developers. I think an interesting shift in management’s understanding of .NET has happened in the past year or two. As management gets more technically savvy and buzzwords come and go, it’s more important than ever that management understands the goals of the roadmap you’ve set out. If you’re about to pitch using a new development approach that requires intense training and ramp up time then you’d be better be prepared for battle.
Sounds simple…right?
Let’s take a look at an application that is ideal for WebForms development. We need an application for internal-use only that will take in some input through a couple of data entry screens, run some basic calculations, and display the data in some sort of table. Sounds simple, right? It sure is. It’s so simple that I can write the steps out as follows:
Figure out what data needs to be entered and throw together a database
Create some pages and drag over some textboxes
Wire up the code and give it a test run
Drag over a grid view and wire it up
That’s all there is to it. There was no real need for design, no complex requirements, or any real thought needed to make this work. You’re happy because it took you about an hour and management is happy is also because it took you about an hour. There’s no need to discuss the details on what’s actually happening under the hood because it gets the job done and does it quite well.
Can’t you just drag and drop something?
We can create simple applications very quickly and effectively. This is where we have been for a long time and management has caught on to that. They’ve undoubtedly heard the term “control” get thrown around on more than one occasion and probably understood it to mean something quite different than what it really is. You see, WebForms does such a damn good job at simplifying things that you can’t blame them for thinking that a control is more powerful than it really is. Just think about the wide variety of controls that we have at our finger tips:
Simple textboxes
Login controls
Grid controls
Reporting controls
etc.
What’s my point?
We’ve created it all: the good, the bad, and the ugly. We’ve built application after application and have done our best to incorporate testing as part of our daily routine but it hasn’t been easy. We’ve developed frameworks to help us test faster, but our budgets haven’t been fond of creating and/or maintaining those tests. ASP.NET MVC provides a brand new way of approaching development. We can finally incorporate Test Driven Development at the presentation-logic level and begin giving a higher level of transparency into the stability of our applications. It’s pretty clear why a lot of us are excited about this.
The pushback that we will be experiencing will come from two levels: developers and management. You will be dealing with real issues when developers pushback if they’re responding the way that I’ve mentioned here. MVC is so different than the world that WebForms created so it’s important to understand the sociological aspect of this situation. Management might not want to invest in testing, but I think it’s pretty easy to combat that one. It’s just important to think about it before making your pitch.
Today I gave a presentation at Austin Code Camp on the up and coming SnapDragon framework. I honestly didn’t know what to expect from this year’s CodeCamp but from what I hear from other people, this wasn’t like most years. Regardless of the turnout, it was definitely a learning experience and an inspiration for me to get more involved with the development community at large. I’m definitely looking forward to getting more involved with the Austin Dot Net User’s Group and meeting some of the bigger names around Austin and growing my network.
If you’re wondering about the title of this post, a friend of mine and I were in a bit of a car wreck after leaving code camp today. It wasn’t anything too serious but unfortunately his car is a little banged up and I’m feeling pretty sore .
Anyway, I have attached the presentation for any one that is interested in looking over what was presented today.
SnapDragon Abstract:
A collection of tools, .NET classes, CSS classes, jQuery extensions, and other reusable application blocks that aim to minimize development overhead.
As illustrated in the attached presentation, we have future plans for growing the framework and involving the community in its development. I’m looking forward to releasing the current code base as Open Source within the next couple of weeks and reaching out to the community to get their feedback.
Somehow May managed to sneak right passed me…like a…ninja. Seriously, I have no idea where this month went. Do you?
It’s 1:00am and I should definitely be in bed right now but I’m actually pretty excited for tomorrow morning. Not only is this my first time attending Austin Code Camp, I have the privilege of speaking on behalf of my company. I’m giving a presentation about our upcoming SnapDragon framework. I’m not sure if these sessions will be recorded, but I’ll be posting my material on here as a followup after tomorrow.
I know that I’ve promised to update more frequently…and I also know that I haven’t been doing that. I won’t make another promise of updating, but I’ll make a more conscious effort! Wish me luck
I used to really care about being social. Actually, it’d probably be more accurate to say that I used to really care about making it seem like I tried to be social. Lately I’ve been learning to kind of embrace a lot of my quirks and stop trying so hard. I probably try to “redefine myself” on a daily basis but this time I think I’m on to something…
We’ve been working on the social.proace project at work and it’s finally starting to take off. It’s funny, no matter how cliche it is, every initiative we make always follows that damn hype cycle:
Hype Cycle
(source: Wikipedia)
I’d like to think we’re at that lovely plateau, but I think we’re more into that slope of enlightment. There are some bugs to work out with our twitter integration and of course the random bugs here and there, but I think it’s coming together pretty nicely. Then of course there’s the whole issue of having content…so I’m going to have to stop being lazy and start writing some technical posts.
It’s not quite ready to link to yet, but I’ll give you a little preview:
social.proace
OK, I had planned to make a long post but I’m exhausted. I’m going to throw on some Arrested Development and The Office and head to bed.
Coffee is an acquired taste. Most people love the aromas in the air but cannot quite appreciate the taste. I say they’re missing out on the addictive caffeine high that I’ve grown to know and love.
Sub-cultures tend to multiply at an astounding rate and the pastimes change so quickly that it makes my head spin. We have coping mechanisms for our inability to keep up: “It’s a trend,” “It’s a phase.” Surely these are true, but I can’t help but wonder if they’re at least partially self-fulfilling prophecies.
I’m almost tempted to question my uniqueness in this world when someone greets me with some sort of gesture that I could’ve sworn I created. It’s mind boggling to consider the odds of both of us creating some new greeting and meeting each other. While it helps make this world feel a little smaller, it certainly does not help demystify the complexity of this universe we live in.
I think we drastically underestimate the complexity of our lives and the decisions that we make on a daily basis. I know this because my job is to model these decisions and automate them whenever possible. Believe me; you’d be surprised how much information is needed to make even a simple and objective decision.
Personally, I believe there’s a beauty in the art of modeling these complex decision making processes. The art and perhaps the underlying creative process is obviously vastly different than their traditional understanding, but it’s hard to argue the comparison when you’ve worked with some of the people I’ve had the privilege of assisting. Each of these individuals has had their own special way of approaching situations and creating the designs that help piece the puzzle together.
Problem solvers, designers, happy-hour groupies, and poets; I’m surrounded by representatives of so many of these sub-cultures and there are only 15 people in my immediate view. A man to my left is developing something in Java and the women to my right are blowing off some steam from what was obviously a tough week. No, I wasn’t eavesdropping; I believe the shots of tequila were a clear enough sign.
Some come for the atmosphere, some enjoy the company, and others just didn’t feel like sitting at home. Everybody here has their own take on the world and it’s always so different. I mention the obvious because sometimes I find myself wrapped up in my own world and I find myself spending my time modeling decisions instead of making them. In fact, I get so wrapped up in what I’m doing that I get a little lost.
Sometimes I wonder what it would be like to strike up a conversation and say whatever’s on my mind. It’d probably go something like this:
I enjoy a nice cup of coffee, I spend too much time trying to understand everything, and someday I’ll grow up and be a little more grounded. What’s your story?
There’s too much pressure. Pressure to expand on the summarizing statements that I always begin with and to close with some enjoyable sentiment that lives up to some mysterious expectation. It’s almost like I feel the need to cater my words to what I think people are expecting to read. Meanwhile, I secretly want to tell you all about how beautiful the weather is and why I’m content with not having anything “exciting” planned for today. I’ve never been one to over analyze this type of thing – certainly not enough to force me into some sort of writer’s block. I honestly think I’m just really out of touch lately.
I’ve been working on some new initiatives at work that are really engaging and it’s been lot of fun. I’m leading our new open-source initiatives and we’re all working hard to polish off the first release of our upcoming Framework (code-name “SnapDragon”) in time for the Austin CodeCamp this May. I’m also working with our Creative Director and my friend Rex to revamp our website and create a company blog as well. Needless to say, I’ve been pretty busy.
I wish I could explain to you everything that has happening with me recently but I don’t know where to start. I’ve been really contemplating some heavy topics, each of which I could probably write a few pages and probably will in the upcoming weeks. Everything from tacit knowledge to reflecting over this past year, there’s a lot to talk about. Undoubtedly, you’ve seen the new look and feel of my blog and you’ve noticed a sudden change in the tone of my writing. I want to introduce the new tone with a few posts and really get back to writing more often – even if it’s a random thoughts that I had while I was driving to work.
In the meantime, play around a little and discover some of the posts that you may have missed. I’ve had plenty of these posts written and let them sit around since I never had a place for them but with the new direction of my blog, I’ve included them in the various categories. I hope you’ll take the team to read a few and open up some discussion. You know how much I love to talk about these things.
At some point, you realize that you’re not going to launch with something that meets all of your expectations. So you compromise, prioritize, and make sure that the features you do launch with at least meet your expectations. If you’re lucky, you’ll have the time to exceed those expectations and really be proud of something. Incidentally, I’ve launched my site and I was lucky enough to exceed a few of my expectations.
If you’re reading this from your RSS reader, please drop on by my new site and do a little bit of exploring. Whether you’re a new reader or a loyal addict of my ramblings, you’re going to find new content all across the board.
Thanks for stopping by and I hope to hear from you.
If you follow me on twitter, then you might have noticed me talking about the “new personal site” and the articles that I am writing. You may have also noticed that there haven’t been any updates on here for quite some time…so what have I been doing lately?
I’ve began a self-branding project so I’ve spent a lot of time reflecting over my experiences, setting new goals, and defining just what it is that I do. I’ve collected articles that I’ve written over the years, new articles that fit into this new image of mine, and I’ve aggregated all of the blogs and information about myself across the web. I’m putting the finishing touches on it all and hope to have the new site up and running by next week.
Hopefully my next post will be to introduce the new me…wish me luck!