D'Arcy from Winnipeg
Solution Architecture, Business & Entrepreneurship, Microsoft, and Adoption

Monday Morning Thoughts – Apple Has Fans, Not Sheep

So the iPhone 6 was released last week and with that comes the numerous comments about sheep. Here’s a sampling from Twitter:

“I saw a bunch of people in line outside an Apple Store for the iPhone 6 and I fell asleep. Turns out counting sheep really does work.”

“How do you milk a sheep? Release an iPhone”

“Trolling iPhone 6 users at work. Such sheep. They don’t get it.”

“You know what I'm not doing today? Buying an iPhone 6. Maybe I should have written this in "baaa" so all you sheep could read it.”

I used to think along the same terms, but now I have a different point of view. Actually, its not just that – its an appreciation for what Apple has been able to do over the years: build a rabidly-loyal fan base.

Apple took technology and made it cool for the everyday-person. In Seth Godin terms, they created a tribe around their brand. Consider this passage from Godin’s book “Tribes”:

The secret of leadership is simple: Do what you believe in. Paint a picture of the future. Go there. People will follow.

Once you choose to lead you’ll be under huge pressure to reconsider, to compromise, to dumb it down, or to give up. Of course you will. That’s the world’s job: to get you to be quiet and follow. The status quo is the status quo for a reason. But once you choose to lead, you’ll also discover that it’s not so difficult. That the options available to you seem really clear, and that yes, in fact, you can get from here to there. Go.

While many companies were trying to build a customer base, Apple was building a fan base. The difference is that a fan base has some element of loyalty tied to it; of connectedness, of ownership. It makes no logical sense but neither do fans of major sports teams – people will follow, cheer, buy merchandise, plan vacations/trips , and decorate houses/cars/etc. around sports teams that they have no other affiliation with besides residing in the same city or state/province (and that isn’t even the base criteria to be a fan – you could live on the other side of the planet and still cheer for a team). And even when things are bad, fans still stick behind their team.

Apple has created that for themselves. The people lining up for the new iPhone 6 are not sheep, they are fans. They have bought in to the idea of what being part of the Apple Tribe is about and will support their “team” to the bitter end. Those that make sheep comments do so out of jealousy and/or misunderstanding of what they’re witnessing – a continued case study in how to create a loyal fan base that propels a business to places unfathomable.



Seriously, Screw CASL

Legislation will go into effect July 1st restricting who businesses can contact via email, or direct messaging on social media sites, to only those that “opt in”. I’m sure the politicians think this is a fantastic win for consumers and will go far to eliminate unwanted email. Of course, they’re politicians which means they live in a realm far removed from reality.

Then you have the businesses themselves who are just reminded of all this a few weeks/months ago (even though, yes, this technically had been known about for much longer). Now everyone is freaking out trying to understand the rules because, since politicians wrote them up, they’re confusing and unclear.

Take the Edmonton Humane Society who is trying to contact its more than 50 thousand individuals that it sends information to on a regular basis. Wait…but aren’t they a charity? Aren’t they exempt? As their director explains in this CBC story, its “not entirely clear how exempt they are” with both CRTC and lawyers saying they “can’t interpret the legislation for them”.

Let that sink in. Politicians have made this law. CRTC is in charge of enforcing it. But there’s no history, no actual application of the law for anyone to really know whether those million-dollar fines will ever be a reality or not. And all the while criminals who are sending phishing attacks and other email scams will continue on.

The CRTC has already said they’re understaffed to manage the expected hundreds of complaints sent in PER DAY.

I think firming up the rules around needing a proper un-subscribe method is good. I don’t think pushing the penalties ahead of how the CRTC will act is wise. And honestly everyone is in worst-case mode because we haven’t seen this law applied in court. We need precedent before knowing whether CASL has teeth or not.

In the meantime, Canadian businesses bare the burden of decisions made in that alternate reality called Parliament Hill. Screw CASL.



Are You a School Thinking of Using iPads/Tablets?

My daughter’s junior high school is wrapping up its first year with an iPad program. In this program, every junior high student in the division gets an iPad Mini. To collect feedback on the program they put out a survey asking parents what they thought. Included was a field for comments and I want to share what I wrote so schools, or parents with kids attending schools, who are thinking of adopting an iPad or other tablet/BYOD program can learn to avoid some of the pitfalls we experienced in our first year.

Class is in session, let’s begin…

As someone in the IT industry there were a number of concerns I’d like to raise about the iPad program. Let me first say that I think integrating technology into the school curriculum is fantastic and I applaud the School Division for attempting this. As will always happen with new programs, there will be things to adjust. My feedback is intended to raise issues I believe need to be looked at closer.

Teacher Awareness and Training

It became obvious throughout the year that teachers were not trained in utilizing iPads effectively/properly in the classroom or given the opportunity/time to create ways to integrate the technology with the existing curriculum. The extent of iPad use by my child was Math vs. Zombies, creating videos and presentations for classes, email (we’ll get to that in a second), and using a fitness app which required them to lie about their age to access the content. The perception formed is that teachers were given these devices without adequate guidance or time to integrate the devices/applications into the curriculum delivery plan. I would suggest that teachers be given direction and time to determine how to best integrate applications and usage scenarios into the day-to-day teaching.

Security and Device Management

Security was not thought through for this program and my fear is that many parents who are not as technically savvy left their children open to various vulnerabilities. There is no reason that parents should have been left to oversee the management and security of a school-provided device.

The tablets should have been maintained centrally through the division, as other organizations do. Parents who did not want their children to have email accounts, let alone Apple IDs, were forced to create them anyway – regardless of whether they were used or not. That the school required students to know their Apple ID resulted in students being given the ability to load and install applications on their iPads. My daughter’s friends had Instagram, Facebook, and other social media applications installed and accounts created; some of these restrict users to being 18 or older. This is important – the iPad program allowed students access to social networks their parents may not have known about and that the school was not policing! Furthermore because internet usage was only controlled through the school’s network, parents may have been unaware of their children’s internet activities either through home or free wi-fi access points. If the iPads were not easily configurable to be centrally managed by the division, then perhaps these were the wrong device to be selected for this initiative.

When we were told the students would be using iCloud, the assumption (wrongly) that I made was it was going to be cloud-based storage for uploading class assignments and *not* an email address that students would use for contact with teachers and students. This was an email account that parents were not given access to. The school division provided a communication channel that parents had absolutely no insight or control of and I believe in many cases without our awareness or permission. If I had known an iCloud account equated to an email account, I would have had a much different discussion with my daughter and possibly with the school. Parents must be told how their children will be interacting online when mandated by the school.

Guidance on Online Behaviour – Students and Parents

To my knowledge there was little (if any) instruction or discussion about online behaviour. In a time when we’re heightened to bullying, the school division enabled every child to potentially be an online bully, to be victimized by online predators, or to simply make mistakes that will stay with these kids for their lives (i.e. posting pictures/videos). Sessions on the internet – how to be safe, how you should interact with others online, how to protect oneself, how to identify devious behaviour (phishing, email/social media scams, etc.) – should have been part of the program.

Additionally there must be more resources and support for parents who are left with managing many aspects of the iPads outside of the school. Not everyone is tech savvy or has access to people who can help. As someone in technology (as I’m sure other parents are), I’d have no problem volunteering to help with workshops or information sessions to help parents fully understand their role in this initiative. I’d encourage you to reach out to parents as resources in this way.

In Summary

Thrilled that we’re encouraging students to take advantage of technology.

Technology for its own sake does not solve problems, it only introduces them.

We need to protect our children better. More security, education, and oversight is required.

We need teachers to have a plan on how to integrate the iPads/applications into the curriculum.

We need parents to be more involved in the program.

If you have any other questions or would like to discuss further, please let me know.

Thanks,

D’Arcy Lussier



Answers to Conference Revenue Tweet Questions

I tweeted this the other day…

image

…and I had some people tweet back questioning/asking about the profit number. So here’s how I came to that figure.

Total Revenue

Let’s talk total revenue first. This conference has a huge list of companies/organizations paying some amount for sponsorship.

Platinum ($1500) x 5 = $7500

Gold ($1000) x 3 = $3000

Silver ($500) x 9 = $4500

Bronze ($250) x 13 = $3250

There’s also a title sponsor level but there’s no mention of how much that is…more than $1500 though, so let’s just say $2500.

Total Sponsorship Revenue: $20750.00

For registrations, this conference is claiming over 300 attendees. We’ll just calculate at 300 and the discounted “member rate” – $249.

Total Registration Revenue: $74700.00

Booth space is also sold for a vendor area, but let’s just leave that out of the calculation.

Total Event Revenue: $95450.00

Now that we know how much money we’re playing with, let’s knock out the costs for the event.

Total Costs

Hard Costs

Audio/Visual Services $2000

Conference Rooms (4 Breakouts + Plenary) $2500

Insurance $700

Printing/Signage $1500

Travel/Hotel Rooms $2000

Keynotes $2000

So let’s talk about these hard costs first. First you may be asking about the Audio Visual. Yes those services can be that high, actually higher. But since there’s an A/V company touted as the official A/V provider, I gotta think there’s some discount for being branded as such.

Conference rooms are actually an inflated amount of $500 per. Venues make money on the food they sell at events, not on room rentals. The more food, the cheaper the rooms tend to be offered at. Still, for the sake of argument, let’s set the rooms at $500 each knowing that they could be lower.

For travel and hotel rooms…it appears that most of the speakers at this conference are local, meaning there’s no travel or hotel cost. But a few of them I wasn’t too sure…so let’s factor in enough to cover two outside speakers (airfare and hotel).

There are two keynotes for this event and depending on the event those may be paid gigs. I’m not sure if they are or not, but considering the closing one is a comedian I’m going to add some funds here for that just in case.

Total Hard Costs: $10700

Now that the hard costs are out of the way, let’s talk about the food costs.

Food Costs

The conference is providing a continental breakfast (YEEEESH!), some level of luncheon, and I have to assume coffee breaks in between. Let’s look at those costs.

Continental Breakfast $12 per person

Lunch Buffet $18 per person

Coffee Breaks (2) $6 per person (or $3 a cup)

Snacks (2) $10 per person (or $5 each)

Note that the lunch buffet assumes a *good* lunch buffet – two entrees, starch, vegetable, salads, and bread. Not sure if there’ll be snacks during coffee breaks but let’s assume so.

Total Food Cost Per Person: $46

Food Cost: $14950

Gratuity: $2691

Total Food Cost: $17641

Total food cost is based on the $46 per person cost x 325. 300 for attendance, 12 for speakers, extra 13 for volunteers/organizers. Gratuity is 18%.

Grand Totals

So let’s sum things up here.

Total Costs

Hard Costs: $10700.00

Food Costs: $17641.00

Total:          $28341.00

Taxes:         $3685.00

Grand Total  $32026.00

Total Revenue

Sponsorship  $20750

Registration   $74700

Grand Total   $95450.00

Total Profit

$63424.00

Now what if the registration numbers were lower and they only got 100 people to show up. In that scenario there’d still be a profit of just under $26000.

Closing Comments

A couple of things to note:

- I haven’t factored in anything for prizes. Not sure if any will be given out

- We didn’t add in the booth space revenue

- We’re assuming speakers aren’t getting paid, but even if they were at the high end its $12000 ($1000 per session), which is probably an inflated number for local speakers.

- Note that all registrations were set to the “member” discounted price. The non-member registration price is higher. There is also an option for those that just want to show up for the opening keynote.

There you have it! Let me know if you have any questions.

D



Business Analysis – We’re Doing It Wrong

Do you know what a Business Analyst does? They analyze business practices. Doesn’t that seem simple? And yet organizations the world over, and even the IIBA it would seem, consider them a super role that encompasses a wide variety of skills and capabilities:

Requirements Gatherer: Instead of utilizing techniques like value stream mapping to identify areas of business process that could be optimized/corrected, BA’s tend to be assigned the task of Requirements Gatherer. They meet with users and hear what it is the users want a system to do, what data should be captured, and even how system screens should flow. This usually leads to BAs also being assigned the role of…

User Interface Designer: I have personally been on projects where BAs were expected to own the user interface design of a system/application, and it seems commonplace to assume BAs would fill this role on projects. Very rarely have I seen where a BA actually understands the capabilities and limitations of the underlying technology being used. At this point some would point out here that technology shouldn't be needed to form a solution, yet in the majority of my experience this decision has already been made at some point. BAs are then left to generate user interfaces on technology platforms that they have no insight into – and nothing bad can come from that, right?

Test Writer: Wait, isn’t this a QA role? One may think that, but since the BA is gathering the requirements anyway doesn’t it make sense that they also write up the test cases for QA staff to run through?

There’s this idea that through the exercise of requirement gathering a BA will become an expert in the business, and that’s just not the case. Throwing a BA into a requirement gathering role is a systems level exercise because you’re capturing requirements of a system, not the details of how the business operates. There’s a huge gap here in identifying the proper roles needed on a project, and this is in part because not all organizations see the value in some of them. “We have a BA, isn’t that good enough?” No, you have a person that you’re assigning multiple responsibilities to when they may not be qualified for some of those roles. You may also not be getting the most out of a BA if you aren’t leveraging their core skills and abilities.

Part of the problem lies with legacy views from the Waterfall days. Big Design Up Front required people to gather requirements and fully design a system on paper before feeding it to developers (who were never included in those up front discussions). This type of application design *still* happens today, and even in shops that fly the Agile banner proudly!

So what should a Business Analyst do? They should analyze the business domain and key value streams an organization wants to improve upon. Technically agnostic, without any expectation of having systems-level knowledge. They don’t come up with domain models, they don’t do data models, they don’t even do screen shots. All they do is learn the business and identify opportunities to optimize/change/tweak to meet an organization’s goals.

At that point new roles are introduced to the flow:

Solution Architect
A technical person (but not a developer) who oversees all aspects of the realization of a solution.

UI/UX Designer
More and more I see how this is an important discipline. Note that this is *not* someone who knows Photoshop and is artistic. This is someone who is educated in the techniques of identifying how an end user structures their work and how to translate that into meaningful system user interfaces. This is an area I predict we’ll see huge growth in over the next few years.

System Analyst
A system analyst works with the Business Analyst to translate the needs of the business into a technical solution. All those requirement gathering exercises we talked about? This is where those happen – not at the Business Analyst level. The System Analyst should have a strong technical background and be able to make recommendations on how to best implement a technical solution. They work closely with the Solution Architect and the…

Technical Architect
Think of the TA as the leader of the software developers. This is someone who deeply understands the technical space and can speak authoritatively to the limitations and capabilities of the technical implementation.

Now, you may be thinking “Woah, there’s a LOT of people needed here. Are they all necessary?” Of course they are! For decades we’ve been assigning many of their responsibilities under one title: Business Analyst! How has that worked out for us? Have we gotten better systems? Are our end users happy? Are our developers excited to be part of a project that they had input to at the design stage, not just completing the potentially unrealistic requests of some requirement-gathering Business Analyst?

YES these roles are necessary, but they are useless unless all are stitched together with an attitude of collaboration and cooperation. No one group is more important than any other in the common goal of delivering the technical solution; all have their role to play.

The BABOK (Business Analyst Book of Knowledge) 3.0 is coming out soon, and includes the following definitions:

Design – A usable representation of a solution.

Requirement – A usable representation of a need.

“Usable” here scares me. Also they have two sections each titled “Requirements and Design Analysis” and “Requirements and Design Management”.

I fear that the current world view that Business Analysts are responsible for/own requirement gathering and solution design will continue and we’ll have the same issues as we do now on technical projects. Business Analysts are important and integral but we need to ensure we’re leveraging their skills and abilities in the right way in concert with other important roles.



Prairie Dev Con’s Evolution – Thoughts on Covering Speaker Expenses

Greg Young tweeted this recently…

image 

This started a really good Twitter discussion about whether conferences should cover travel expenses (airfare and hotel) for speakers, with some event organizers weighing in. Having run a successful conference for the last four years I wanted to share my thoughts and experiences around this (Twitter’s 140 character limit is very…well, limiting :) ).

Conferences are a collaborative effort between four groups: Organizers, Attendees, Speakers, and Sponsors. Each group has a certain expectation of each other in the context of the conference.

Attendees want engaging speakers who bring unique knowledge, skills, and experience; organizers who provide a great venue and amenities, and who respects the audience’s time and money being invested in attending the conference; and sponsors who are active participants and add an extra element of fun through on-site presence, swag, contests, etc.

Speakers want attendees who are positive, participatory and ready to learn; organizers who value the time and talents they lend to a conference; and sponsors active in conference events who may be affiliated with them (i.e. a speaker who is also a Pluralsight author).

Sponsors want excellent speakers who will help draw a large number of attendees; attendees who will engage with them at or through the conference; and organizers who look at sponsorship more as a partnership than simply a money-for-logo opportunities.

Organizers want attendees who appreciate the work and effort that goes into putting on a conference; speakers who’s professionalism and preparedness help form the culture and personality of the conference; and sponsors who recognize the importance of community events and want deeper engagement with attendees.

At my work we like to talk about a 3-legged stool analogy between customers, employees, and employer. The same analogy holds true with conferences, but with 4 legs instead of 3.

image

It’s this model that I’ve based Prairie Dev Con on, and one that continues to evolve as the conference does. For the last three years I’ve been fortunate to have speakers who invested in the conference through covering their own airfare expenses (I cover all hotel costs as well as a speaker’s dinner). Admittedly that was an imbalance that allowed me to work through my conference model and refine it; if not for those speakers over the first 7 iterations of Prairie Dev Con, it wouldn’t be the success it is today.

Going forward, and starting with the 8th Prairie Dev Con I just held last week, travel expenses for speakers (airfare and hotel) will be covered by the conference – as it should be. My model has matured and has been proven to be successful, and being able to provide speakers with the proper expense coverage is an important step to ensure Prairie Dev Con continues to offer top-tier talent to it’s attendees.

Now, I don’t want to call out any other conference because no two conferences are alike. Each has their own nuances, mission statements, cultures, and goals. But for conferences that charge a non-trivial amount for registration but don’t cover speaker travel expenses, I would challenge those organizers as to why.

The problem with having the legs of your stool at different lengths is that you’re constantly trying to balance. Ensuring that all our participant groups are having their needs met means that you have a solid base to grow from…and that small foot stool eventually becomes taller and taller as your conference grows and matures over time. That’s what I’ve seen with Prairie Dev Con, and ensuring speakers are taken care of is a huge part of that growth.



Orleans–Cloud Services at Scale

Putting this here as a growing data dump of links/resources around Project “Orleans”. What is Project Orleans?

Project “Orleans” provides a straightforward approach to building distributed high-scale computing applications, without the need to learn and apply complex concurrency or other scaling patterns. It was designed for use in the cloud, and has been used extensively in Microsoft Azure.

There’s a great story about how Orleans is used to back Halo and deliver stats and info in real time to gamers. You can read a great intro that explains what it is and how to get the bits for it here:

http://blogs.msdn.com/b/dotnet/archive/2014/04/02/available-now-preview-of-project-orleans-cloud-services-at-scale.aspx

There was also an in-depth session at Build this year focussing on the Halo implementation. No video as posted yet (10:45 PM CST on April 2), but I expect it to go up here at some point:

http://channel9.msdn.com/Events/Build/2014/3-641

Here’s a link to the CodePlex site for Project Orleans samples:

https://orleans.codeplex.com/

More links/info here as I find them.

D



Prairie Dev Con 2014 - Early Bird Pricing Extended

Prairie Dev Con 2014  - Early Bird Extension to March 21st!

Attending Prairie Dev Con is still one of the most affordable professional development experiences you can get as a software developer! 

Our Early Bird price of
$499.99 has been extended through Friday, March 21st! Remember groups of 3 or more still get an extra $50 off each registration!

Get all the information on how to register on our Registration page!

Incredible Lineup of Sessions!


We have an amazing lineup of sessions for Prairie Dev Con Winnipeg! Taking your feedback, we've focused the content on web, mobile, ALM, and development patterns & practices, with sessions on other topics as well! This is one of the strongest Prairie Dev Con session lineups I've ever seen, if not the strongest!

You can view all of our sessions on our website here!

Post Conference Workshops


We're offering three post conference workshops lead by leading experts in their field! The workshops are on Domain Driven Design (Donald Belcham) . Kanban & TFS ALM (Dylan Smith), and Angular JS (Matias Niemela)!

Check out our Workshops page for more details!

 

Thanks, and I hope to see you in April!

D'Arcy Lussier



Winnipeg Tech Community’s Loss – Thoughts on Dean Clarke’s Passing

It was one of the last two weeks in February when I spoke with Dean Clarke, president of Apptius. We both happened to be at the same client site and we talked about our respective work assignments, my upcoming conference in Winnipeg, and just general life stuff. On Friday Feb 28th I looked out the project team room and saw Dean talking to one of the client’s staff, friendly and smiling like he always seemed to be. I made a note to myself to follow up with an email on some items we had discussed.

On Saturday March 1st Dean passed away suddenly and unexpectedly.

There’s many lives that Dean has touched, foremost his family, friends, employees, and colleagues. Dean was also a huge reason for the Winnipeg tech community’s success over the years, something that many people may not realize due to Dean’s modesty; he always supported, always contributed, always asked how he could help, but never did it for his own personal celebrity or recognition.

If you enjoyed going to the .NET User Group in Winnipeg over the years you have Dean in part to thank. For years Apptius has been a financial sponsor of the user group because Dean recognized the importance of community. Some companies mull over community support – the cost, the benefits, whether it makes strategic sense. But not Dean. He was always willing to help because he saw it as the right thing to do.

If you enjoyed attending any of the many Winnipeg Code Camp events over the years, you also have Dean to thank. Whenever I’d talk to Dean about sponsoring the Code Camp the conversation never ended at how much money we needed for the event. It continued with “What else do you need?” Dean was the one who provided those “Code Camp Survival Kits” – plastic containers filled with snacks that were given to attendees for free. That, in addition to bottles of water, was all Dean’s idea and doing – he just wanted to do something nice for the community.

Dean wasn’t just someone who “provided stuff” for events, he was hands on. He offered to print out all the attendee nametags, plastic badgeholders and all. And when he arrived at the Code Camp, one of the first things he’d ask is “How can I help?” Here’s a picture of Dean manning the registration booth, something he did often at the Code Camps.

CodeCamp2009Dean

Dean was that rare example of true “leading by example”. A company President who never let his title define him; instead it was his actions and his interactions with people. I will miss Dean greatly not just as a leader in our technical community but as an amazing person who always had the betterment of others in mind. Dean was the embodiment of what the Winnipeg tech community is all about and he’ll be dearly missed.



It Was 2001, and I Had a Decision To Make

Rob Conery wrote a blog post today waxing philosophically about how his choice of technology in 2001 impacted his career. It’s an interesting read and one that I found mirrored my own journey through the 2000’s in many ways. There’s some things that Rob mentions that I don’t totally agree with but I’d rather have discussion than debate, so I’m going to offer my view of the .NET decade as I remember it.

It was almost 2001 and I had a decision to make.

Having realized that my teenage dream of being a McDonald’s manager was not conducive to a healthy or financially fulfilling life I began college in 2000. I was part of the second intake of the Information Systems Technology (IST) program at Red River College here in Winnipeg. We all learned Java, VB, OO analysis/design, and basic database theory. Then we had to pick a stream – Networking, Programming (C++, PowerBuilder), or E-Commerce; I picked E-Commerce.

Heading down the web path introduced me to basic HTML, CSS, and JavaScript. Classic ASP, and Java Applets followed. For my co-op term I worked on a VB 6 desktop application but still worked with Classic ASP at home and at work when I could. I embraced the web.

After graduation I got my first gig working for a guy who had the IT contract for a local construction company. He was hiring to staff a project to build an intranet web portal and it would be built using a new technology from Microsoft – ASP.NET. It was December of 2001.

Over the next year I fell in love with ASP.NET. It felt familiar due to my VB 6 course in college and co-op term. Drag and dropping the controls and the code-behind paradigm made “web” development incredibly easy compared to Classic ASP. We came up with some pretty crazy solutions on that project for things like almost-real-time chat/notifications, navigation, and (my big accomplishment) a system for filling out various forms in online web forms leveraging a rich text box for formatting and then passing it through an XSL-FO parser before finally rendering it as a PDF. In some ways we were building SharePoint before there was SharePoint…heady times!

Over the next few years I worked on a number of projects for a number of companies; some web based, some not, but ASP.NET stayed as a constant whether at work or relegated to home learning.

It was Microsoft’s World

Microsoft threw obscene amounts of money at the community in the early-to-mid 2000’s in a bid to drive developer adoption. .NET User Groups popped up everywhere, Code Camps and conferences sprouted up, and Microsoft’s own events were big deals. I got involved with our local user group, eventually leading it for a while and then branching out to run our code camp. I embraced this amazing Microsoft community that I was now a part of – through INETA (International .NET Association) I got to attend TechEd 2005 for free and its there that I met so many others who were active in the Microsoft community.

I became a Microsoft Most Valuable Professional (MVP) for ASP.NET, I spoke at numerous events on ASP.NET related topics, and continued building my personal network of friends/colleagues. Another TechEd, PDC, and numerous MVP Summits were added to my list of attended conferences.

Rob mentioned in his blog about how in his peer group the “MVP was everything”. For me getting into the program was a huge win both professionally and personally. More than the free MSDN license or swag or the summit, the friendships I’ve made and experiences I’ve had through the program are priceless.

And Then This Happened

Well, “This” happened early on in my MVP/Community days (2007ish). Microsoft hired some non-traditional devs to head up something in the ASP.NET group. Phil Haack, Scott Hanselman, Rob Conery all came on board and launched ASP.NET MVC which BLEW. ASP.NET. UP.

No really…as a developer on the outside of Microsoft, MVC was one of the biggest un-Microsoft things to come out of Redmond. Lead by Scott Gu, that team ushered in a new era of transparency and interaction that before had been unheard of from Microsoft (unless maybe you were into FoxPro). It also thrust ideas of unit testing, design patterns (and anti-patterns), and development best practices to the forefront as opposed to the “I did it without writing any code, wire up your code to your database in markup” marketecture we typically saw.

At first people were a little taken aback at first with the changes:

- What do you mean there’s no drag and drop?

- We code directly *in* the client-side markup? Isn’t this like Classic ASP?!

- Wait…so we don’t navigate to a page, but to a route?

So this is where I will call out something in Rob’s post. He said:

From 2002 up to 2008 or so the Microsoft web world was (and to a large degree still is) all about "Visual Component Development". What that means is you basically do a lot of drag and drop and let the components do the work for you (write HTML, hookup server code, CSS, etc).

Now I agree with that entire paragraph except “and to a large degree still is”. Yes, there are lots of Web Form code and projects that are still in production and still supported, but from what I’ve seen I would suggest that the ASP.NET developer community has shunned Web Forms in favour of MVC (just count how many Web Forms sessions get booked at any major conference). Not only did the advent of MVC change how developers saw ASP.NET, it changed how they saw web development and architecture. It caused developers to re-assess their prior notions of how web dev worked.

Rob mentioned how HMTL and CSS weren’t scary as they were to ASP.NET developers. This is an important point: ASP.NET Developers weren’t web developers, they were ASP.NET WebForm developers who happened to run their apps on the web. MVC forced ASP.NET devs to embrace HTML, JavaScript, and CSS – and those that did have been reaping the benefits ever since.

What If I Didn’t?

I’ve never questioned my choice of picking the E-Commerce stream in college. My friends that took the Programming stream ended up being colleagues and co-workers over the years anyway and they had to endure advanced PowerBuilder.

I’ve also never questioned my choice of Microsoft technologies. The 2000’s were a fantastic time to be a Microsoft developer, especially in ASP.NET. Even when I was still deep into Web Forms development, there was never a lack of projects or interesting work; MVC just made it that much more fun. The community I was fortunate enough to be a part of because of my involvement with Microsoft continues to be an incredibly valuable part of the 2000’s that I carry with me to this day.

But now its 2014 and those days of .NET glory are behind us. Microsoft has evolved, creating a new company with a new vision and new goals. It’s no longer about whether developers use .NET, its about whether they host their apps on Azure. The old lines drawn in the sand are gone, old enemies becoming strange bedfellows (example: Microsoft announced recently that Oracle products can be run on Azure). The flow of money to the developer community has slowed to a trickle and more focus is being put on virtual training opportunities. The consumer space with Windows 8 and Windows Phone are front and center, and the enterprise messaging is less about custom development and more about packaged solutions (read: SharePoint, Exchange, BizTalk, Lync), and hosted solutions on Microsoft’s cloud.

Yet web development has stayed consistent and is the most relevant today. WPF, Silverlight, and other desktop technologies have tried to supplant the browser and all have failed, with organizations favouring web-based clients that easily port between desktop, tablet, and mobile experiences. Microsoft’s messaging has shifted from winning the client with a proprietary technology to winning the middleware and backend services with cloud-based solutions, which given the speed of development in the JavaScript community makes perfect sense.

But for me, and for many other fantastic developers that I know, ASP.NET was the foundation that we all built ourselves on. For us putting years into ASP.NET didn’t stunt their growth learning CSS or JavaScript, it didn’t keep us from looking at design patterns or considering new/better ways to architect a web application, and it didn’t keep us from exploring competing technologies. Yes ASP.NET Web Forms had many faults, but its easier to see those now 13 years later and with so many other great technology options available.

Every journey begins with a single step, and I’m glad my first steps were within the Microsoft dev community and specifically with ASP.NET.

On the Other Hand…

Cold drinks, hot drinks, salads, sandwhiches, pizza, cookies, pies, fries, sundaes, cones. That was the McDonald’s order of assembly back in the 90’s. I still remember it – maybe I’d be head clown by now?



On Dreaming - So Don Belcham and I Walk Into a Bar…

So I’m at an Irish pub with Donald Belcham here in Winnipeg. It’s right on Portage Avenue, a few blocks from the MTS Center. It’s also amateur singer/songwriter night and there’s a stream of people ready to get on stage to perform. The mix is one part serious, another part live-karaoke…some hits and misses.

This guy gets on stage and while Don and I are talking he performs this awesome song – sort of Jack Johnson/John Mayer/Tragically Hip-ish.

At 9PM in the evening, Don tells me we should jet. First he decided to perform some poetry on stage first though, so I find the guy who sang and ask whether his music was available on a website or iTunes or something. He looked genuinely surprised that anyone would be interested. He said he thought it up on the drive up from Georgia (he had a Bulldogs sweater on). This launched into a whole discussion about my time in Atlanta this past September, going to the Falcons game, how the Thrashers moved to Winnipeg, etc. He thanked me for the kind words about his music, and then he left the bar.

And then I woke up.

Our subconscious is an amazing thing – this ability for us to create a truly virtual world for us to exist in while sleeping. People and places that we’ve never met or been to that are rendered in realism only our brain can construct; complex things that are truly a complex creation of our minds.

Like a song.

I can’t tell you what the song sounded like or the words, but there *was* a song. It had music and lyrics that made sense and was entirely concocted by my mind (assuredly taking cues from real-world experience to stitch it together, the same way visits to pubs allowed me to stitch together this imaginary bar on Portage Avenue).

Remember how I blogged about life lessons on risk? Many times we don’t risk because we limit what we can do. We, in our conscious world, live with the fears that our life experience has built within us. We relegate dreaming to our subconscious which is unhindered by those fears. In our dreams we can do anything.

But what if we could make our dreams part of our reality? Dreams can show us what we’re capable of. I’m not a musician, and yet I created a song. It’s when we realize that the only thing stopping us from achieving great things is our own implied fear – of failure, of rejection, of sucking, of difficulty – that we can move ourselves to do amazing things that we (sometimes literally) otherwise could only dream of.

We need to be a people of dreamers again. Imagine what we could accomplish…



MCSD Web App Certification Changes Already Coming

Larry Kaye blogged about some upcoming changes to the MCSD Web App cert. You can read the full blog post here, but in a nutshell:

Adding 70-483 Programming in C# as an option for the first exam towards MCSD Web (currently 70-480 Programming in HTML5 with JavaScript and CSS3 is the only one available)

70-486 Developing ASP.NET MVC 4 Web Apps and 70-487: Developing Windows Azure and Web Services will be updated to cover more recent technology releases, specifically MVC 5, Web API 2, EF 6, the Azure Portal, and VS.NET 2013. THe changes will occur in March 2014.

D



2013–Applied Life Lessons On Risk

I started 2013 with a blog post about a dream I had, one where nobody was willing to take action against some robbers at a diner. At the time I lamented how so many in the real world don’t take on more risks out of fear. At the time I was speaking from a very academic point of view – theory, but not practice. 2013 called me on that, challenging whether I really believed what I had written. I got roughed up after a hockey game trying to help defend some guys, I almost got left with a $5k bill from a guy I co-organized an event with, and we said goodbye to my father-in-law.

To Risk Doing What Is Right

My assault after the hockey game left me feeling weak, helpless, and pathetic. As a husband/father I should be able to defend my family yet I couldn’t even defend myself. I risked helping others and experienced what “no good deed goes unpunished” means. But after emotionally processing it, I realized that I’d jump in again in a heartbeat; so what do I do to change how that situation would have gone down? In this case I took up boxing and further committed to a healthier lifestyle. The lesson here is that when weaknesses are brought to light we can’t dwell and lament on them. Yes, we need to emotionally deal with having something personal exposed, but we pick ourselves up and strategize how to address it.

To Risk Trusting People

With the $5k bill story, I covered most of the legalistic do’s/don’ts on running a community event with a volunteer group in the original blog post. The risk here was in trusting people, and I got burned. What followed was a blanket application of “Fool me once shame on you, fool me twice shame on me” to everyone in my life. You know what’s harder than learning how to punch someone? Learning to believe that the majority of people out there are good and aren’t out to screw you. But for us to succeed in life we need people, and we can’t pull punches when it comes to placing trust in those we endeavour with. This is still a work in progress, in part because I’ve been burned in trusting others before, but the important part is there’s progress.

To Risk…Everything

In December my father in law Larrie passed away unexpectedly. The finality of death, the sudden removal of a loved one from your world, the sobering reality of what we all become once our heart stops beating, is absolutely and violently brutal. I’m bombarded with thoughts and questions on our human existence. Death’s sting is not a fear of pain but the loss of all the beauty we have in this life. Our death doesn’t stop the world from spinning, and we live on in the memories of our loved ones for as long as they live; eventually the ripple we make in life’s river fades until there’s no trace we made any ripple at all, another tombstone nobody visits.

I was in his apartment the other day as movers took the last of his items out. Once they left it was me and his empty apartment, those thoughts and questions filling my head and mixing with the raw emotion of losing a close family member. There was also a pile of books that the movers had found in his couch drawer. I picked one up, flipped through it and I found a card. On one side it said:

“Thank You for Sharing and Caring”

and on the other was this poem:

To Risk

To laugh
Is to risk appearing the fool

To weep
Is to risk appearing the sentimental

To reach out for another
Is to risk involvement

To explore feelings
Is to risk exposing our true self

To place your ideas, your dreams, before the crowd
Is to risk loss

To love
Is to risk not being loved in return

To live
Is to risk dying

To hope
Is to risk despair

To try at all
Is to risk failure

But to risk we must
Because the greatest hazard in life is to risk nothing

The man, the woman, who risks nothing or does nothing
Has nothing

Larrie’s was a tough life, the oldest of a large family where he was thrust into a parental role of his siblings early on. He worked hard, and played hard – a little too hard unfortunately which caused relationship issues. Looking back at his life though, I see how he risked so much of himself to try and make things right. He wasn’t always successful and was by no means perfect (none of us are), but his life ended as a loving father, an amazing grandfather, and until her death a few months prior a doting son to his aging mother. Larrie could have given up decades ago but didn’t. He saw the value in life, the value in others, and determined that risking something was better than accepting defeat and having nothing.

I want a life filled with experiences, memories, people, joy, and happiness. I also want it based on values and morals that place value in people and our shared experience of life. This last year has taught me that attaining that will require risk, pain, and hard lessons. And that’s ok, because sometimes its the things that we encounter in life that seem so negative at first which produce the thing we want most in the end. Happy 2014, I hope its a risky one for you.



ASP.NET Trends for 2014

I had a co-worker ask me about what areas of the Microsoft stack he should focus on for 2014, specifically around the development/services space. Here’s what I told him.

OWIN (Open Web Interface for .NET)

From the project’s GitHub FAQ:

OWIN, or the Open Web Interface for .NET, defines a common interface that decouples web applications from web servers.

OWIN defines the structure and requirements of HTTP request and response interactions. The assembly codifies the definitions in the spec to allow you to avoid using type aliases in all of your files.

The primary benefit is that by using OWIN, you decouple your application from a specific web or application server. This means you can run your application on broader number of platforms more easily. The Kayak web server, for example, runs well on *nix systems using Mono. The command line Katana.exe also allows developers using *nix systems to run .NET web applications without jumping into a VM.

OWIN is the cornerstone of a new era of “Middleware” (a buzzword you’ll be hearing throughout 2014). Microsoft already has a set of components for building/hosting OWIN-based web apps called Katana (check out the project page for Katana here).

Here’s a great article that gives an overview of Katana (and some background on why Katana is needed and where it fits in the ASP.NET ecosystem): http://www.asp.net/aspnet/overview/owin-and-katana/an-overview-of-project-katana

Also here’s an article on how to get started with Katana: http://msdn.microsoft.com/en-us/magazine/dn451439.aspx

SignalR

SignalR is the go-to library for adding real-time-web features to your ASP.NET applications. As more applications move to a single-page model and/or leverage JavaScript libraries, real-time-web becomes more of a necessity and less of a nice-to-have. SignalR has become hugely popular and should be on every ASP.NET developer’s technology radar.

My buddy James Chambers put together a great list of resources around SignalR on his blog:

  • The source for SignalR basics – http://asp.net/signalr
  • Follow the SignalR tribe on the Twitter – @SignalR
  • Done your homework and still needing help? – http://jabbr.net (join the SignalR room)
    • ASP.NET Web API
      Simpler, lightweight, REST based services is where the web is going. Web API allows this to happen within ASP.NET MVC without the heavy lifting that WCF requires.
      Azure
    Azure is here to stay and Microsoft is going to continue making the cloud part of the development story here in the 2010’s. I don’t think traditional application/web hosting will go away immediately, but we will see an evolution of those business models. Azure definitely has the richest feature set of all cloud offerings from a development point of view and has huge horsepower in its development team headed up by VP Scott Guthrie.

D



ToysRUs.ca Bait and Switch – In Stock Might Not Mean In Stock

*Note: Scroll below to see updates to this blog post*

This morning I put in an order with ToysRUs.ca. I bought three items, all which were shown to be in stock. I qualified for the free shipping option.

image

I submitted my order and received the confirmation screen, where I was shown this:

image

This item was shown to be in stock when I ordered it, but after I processed the order it magically wasn’t?! And of course, because I fell below the minimum for free shipping I was now charged the shipping amount. I’d rather pay for product than shipping.

ToysRUs Canada, you need to fix this flaw in your system!

Update - Dec 11 2013

I tried to call on Monday to cancel the order. Both times I called I was quoted by the automatic system wait times of 25 and 35 minutes. That's right - 25 or 35 minutes to cancel an order because I couldn't cancel it online.

This morning I received a shipping confirmation via email. So for some reason I couldn't cancel my order online for 3 days?! Horrible! But wait, it gets worse...

They only shipped *one* of my items even though both were listed as being in stock. I had resigned myself to eating the shipping charge and just returning the items when I received them (note: I went to a ToysRUs furthest from where I live and they were fully stocked of all three items I wanted, so I just picked them up there), but I have a feeling I'm going to get hit with two shipping charges; not cool at all!

Watch for another update on this. I'm also hoping that the Toys R Us Canada Twitter account responds to my tweets, but it looks like there's a list of people they need to get back to.

Update - Dec 11 2013 11:17 AM

I came to work this morning to find my one item had been delivered this morning. Wait...so I get a shipping confirmation and a few hours later I get it delivered?! Shouldn't the shipping confirmation have been emailed WHEN IT SHIPPED?!?! Sigh...