Monday 18 February 2013

Have you heard of a magical place called the Internet?



I am a little bit of a spoiled brat when it comes to the wired world. My web presence started with Geocities when we embraced animated gifs and blinking HTML. Then I moved on to pimping MySpace in the mid-noughties and then discovered the pedestal that is having your own blog. Yes, I lived in the even older text based world of newsgroups and spent hours surfing the web with Lynx.

These days, I feel sad when I meet "IT people" who think they are somehow carrying a banner of normality by not being on Twitter or Facebook or LinkedIn. They ask "why would I want that?" and to be honest, I couldn't care less that they haven't worked out that the world is leaving them behind.

In fact, it shocks me to come across "computing people" who snigger at the idea of an online brand only to wonder why no one hires them based on all the silent good deeds they have done. I call that a home brand. Yet, they go on to tell me that the world is a meritocracy and no good deed goes unpunished. I don't snigger back.

In my job, I build bloody big web sites for super large companies. I build mobile line of business apps for multinationals. I build dumb games for smart phones. I talk about design of architecture and of user interface. I demand usability and an enjoyable user experience. I make interacting with the virtual world easier for people who don't spend their whole lives online like I do and for those who do.

It is unsettling to see the same mistakes being made over and over again. To watch cluttered interfaces be embraced by technologists who I think should know better. To see people tell me that this is the way the world is when I sit in their retro worlds and think of how young I once was when the thing they are championing was actually the new black.

In the past, I would try to educate them. Explain in detail the reasoning behind good design in visual ways and in code. It would take time and patience and not slapping them but I'd invest and finally help them understand the modern way.

I'm not even talking cutting edge. Just what is accepted now.

Everything is different now. Things old people once said to me are now coming out of MY mouth. Things like "I choose which battles to fight these days" and "they will learn in time" and "it is not my job to teach everyone."

When it comes to a client and delivery at work, I give my all. The long conversations seem worth it. When it is my peers and people I watch or interact with because of work and who aren't my clients then I seem to stand back now. It still irks me or even hurts my soul to not interject but something in me simply doesn't care enough anymore.

There is this amazing thing called the Internet. Stuff is moving fast. What you understand as the "best practice" or the "standard" may have been that once but it isn't now. I spend so much time looking at better ways to do things and new reasons for doing it that way. That is not an assumption I can make for others.

Keeping up with progressing technology and ideas is a job on top of your full time job but for those of us in technology, it should be a given. You can't just work 40 hours and go home and base everything on what little you did or learnt in that time. If you want to do that, study ancient history or paleobotany. The world of technology is not the place for you.

Hey, you kids! Get off my lawn!

Sunday 17 February 2013

Geek Girls Coffee and Microsoft Webinar

On Tuesday the 12th of February, I participated in a webinar (an online seminar) that was a collaboration between Girl Geek Coffees Sydney and Microsoft.

Pip Marlow


It was run in a panel format and the panel members were all from Microsoft:

  • Pip Marlow - Managing Director of Microsoft Australia;
  • Me;
  • Andrew Le Lievre - Human Relations;
  • Michelle Tea - Head of Services in Microsoft Australia; and
  • Susanne Krohn - Early Career Employee and recent graduate.

The audience was a good mix of women in technology who are currently studying, recent graduates and those working in ICT at the moment.

Michelle Tea


The aim was to address audience questions around:
  • What is it like to be a woman working in ICT?
  • Was it a straight road to get to where you are?
  • How have you dealt with negative experiences due to being a woman?
  • What is important when companies like Microsoft are hiring people?
  • (and the very important) What do you always carry in your handbag, other than a mobile phone?

Damana Madden (me)


There were great stories and a lot of good insight from all the panel members. The audience was able to ask whatever was on their mind and comment on different questions. It was a wonderful chat all round.

Susanne Krohn

These kinds of events are an awesome chance to get to talk to people who are working in the thick of it, in large companies like Microsoft with women participating in all roles.

Andrew Le Lievre

Kudos to Katrina Wong for organising this, along with GGC Sydney.

Tuesday 5 February 2013

This is Not a Democracy



When I see people who I consider good leaders, be they of any age, gender, height or ethnicity, I see one thing that they do very well. They make decisions quickly. Quickly does not mean recklessly. It just means that they make a decision knowing that if it isn't right then they can correct at a later time.

Too often, I see people who decide for whatever political, career or other reason that they want to be a leader without understanding the fundamental decision maker trait. They go in to every situation and in particular meetings, as if they are chairing a committee that must come to a full consensus before a decision is made.

This is one of the worst things you can do.

Of course, it is right to listen to the group and take input and feedback at all times. That is a given.

The big mistake is to ask permission to move forward at every stage in a journey. This slows things down because of two important factors: 1) You can't always get everyone to agree; and 2) People don't always want to have to make the decision for you.

The latter is important. That is one reason why people like leaders. The responsibility to deal with consequences often falls to them. Others will assist but they don't want to have to be the ones who decided that things be done. This in itself is not a bad way to be. Not everyone wants to be in control of every situation. That is why we sometimes lead and we sometimes follow.

Making every decision by committee can also mean that the "wannabe" leader loses trust because they look indecisive.

If you want to lead then just lead. People will forgive you errors if you can fix them. If you share the same goals and want the same outcomes then there is nothing bad about deciding now and apologising later.

Not every group has to function as a democracy in order to work.

ASP.NET MVC v ASP.NET

Having used ASP.NET MVC since it was in Beta in 2008, I am asked every time I mention those extra three letters why you'd bother moving a mature ASP.NET application to the new framework.

ASP.NET MVC is a framework that helps you build applications (note: I did not say web applications only) in a Model View Controller pattern. It breaks your applications presentation layer in to three distinct parts: The Model is the data. The View is the presentation. The Controller is the glue that holds it all together and manages interactions.

Traditional ASP.NET Application Architecture

In a classic ASP.NET application, the application logic is presented up to consuming applications through an ASP.NET container that returns web pages. If you want to access that logic through another consuming application that isn't web based then you implement web services that allow API access to that functionality. This is what you'd do to allow Javascript calls from your web application that didn't want to go through full ASP.NET page lifecycles to get standard HTML page data. Getting a JSON response is usual for an AJAX type call.



ASP.NET MVC Application Architecture

With ASP.NET MVC, one fundamental thing has changed. The ASP.NET application takes an HTTP Request and returns an HTTP Response of any type. That means that it can return HTML+CSS+Javascript to a browser if that is what it asks for or JSON or XML or any data format you want. It is just a generic HTTP response.

What this means is that you no longer have to build separate web services to expose application logic to consuming applications that do not want standard HTML. Those applications instead make requests and the ASP.NET MVC application is extended to process those requests and return whatever is required. The consuming application can be Windows-based, a mobile application, another web service or pretty much anything you can imagine.


There are a lot more differences between ASP.NET and ASP.NET MVC but this is an architectural one that will save you a lot of implementation time. Instead of wasting time on software infrastructure and scaffolding, you concentrate on writing business logic and exposing that business logic in consumable ways.

It is totally worth considering if you are have a greenfield project or are moving to later versions of .NET and are reconsidering ASP.NET.

Monday 4 February 2013

Troubleshooting is Technology Agnostic



There is a concept of Technical Depth within Microsoft. It describes how well a person understands a specific technology. It focuses on specialisation in a domain.

Our straight out of university graduates sit around 100 depth. Our beloved Evangelists sit at 300-400 depth but posses impressive breadth of areas of knowlege. Premier Field Engineers sit at a depth of at least 500. The guns of Microsoft who know things inside out are referred to as CTS. They sit at a depth of 700. Ask them a question on a specific technology and they will recite the code to you. It is awe inspiring.

There have been many situations that I have been called to that required me to act as a problem solver and quasi therapist on. Usually, the client was in a horrid position where they felt they needed Microsoft to bring sanity to the overall moment.

I am a developer. In Microsoft, my role is as a Developer Premier Field Engineer.

In the situations that have required that I march onsite within odd working hours and when the sky is falling, me being a developer seemed essential. The truth is that on these occasions, they did not need a developer. They needed a problem solver.

Often when the sky is falling and your managers, your big big managers, need everything sorted then that is when you call for us. You want a voice of reason. A voice of order that bring calm to a situation. It never seems to matter if I am an expert in WCF or low level debugging. It is more having a person who can clearly see through the haze of panic that brings calm to the situation.

That doesn't mean there aren't people on the ground with that skill. It just means that the kudos of being from the Big M seems to hold some sway. It helps temper the mood. It lets us belay the journey to the solution.

There is merit in this skill. In the skill of slowing the moment and redirecting the effort. There is benefit in working towards a goal in Matrix time.

It has taken me a long time to understand the profit in reactive PFE skills. Now I see what we bring. We bring zen. We bring the martini with a twist. We bring calm to an angry ocean.

Microsoft PFE is trust and effort and knowledge combined. I like that idea.

Acknowledge Me

Apple started a user experience trend many iOSes ago when it accepted Settings changes and did not ask for confirmation. Once the chang...