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.
It was run in a panel format and the panel members were all from Microsoft:
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.
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?
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.
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.
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.
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.
Thursday, 24 January 2013
I talk good, I does
Inside Microsoft, there are lots of different moving parts. The company is made up of around 100 000 full time employees. One of the newest but rapidly growing parts is Services. The group I work for sits under Services and is called Premier Field Engineering (PFE).
Premier Field Engineering does not sit under a subsidiary like Australia but instead exists under a global group. It is different to other Services parts like Microsoft Consulting Services (MCS) who do belong under Australia.
This design certainly gives us a lot more mobility and the ability to act as a pool of resources for other parts of the business.
In the world, the Universe and everything at last count, there are 3009 Premier Field Engineers (PFEs).
I have been with PFE for just on 9 months now. At the 7 month point, I was nominated for an opportunity called the PFE Industry Leadership Program. It runs every six months and this is the second round.
Out of 3000+ PFEs, 32 of us were nominated by members of our local PFE management group for being current and often loud participants in the areas of 1) blogging and online presence; 2) public speaking at conferences; and 3) video presentation skills.
When I was nominated, I was chuffed until I found out that I had a month to produce a blog post (easy copy-paste job from my blog), a short Powerpoint presentation (oh no, I don't do short presentations) and an even shorter video (see previous "oh no.."). Nothing in life is free and for me, nothing in life is harder than saying what I need to say in a very short amount of time. For me, filling an hour with building rapport, articulating technical content and allowing time for digestion of the information and questions is what I do every day and what I do very well. To be asked to achieve a similar outcome in a shorter time scared the hell out of me.
It frightened me so much that I left the tasks until the very day that they were due.
Now, that doesn't mean that I didn't put effort in to them. If anything, I put a short and succinct amount of effort in to them. Without too much time to over-think it all, I had to put what I had to say in to a little space within a small amount of time. I think that made it easier, rather than harder.
In my life, I have spent a lot of time painting. For what I lack in talent, I make up for with enthusiasm. One important thing I learnt a long time ago when I started to embrace my inner artist was to know when to stop. Perfectionist are awful at that. We want to go and go and go in a quest for unattainable perfection. In this case, I made the videos and honed them and then stopped. Without one of those big Ang Lee panorama cameras on a big pole with a chair I could sit in, I was not going to make a Tropfest winning short so I stopped with what I had and moved on.
A couple of weeks later came the interview. New rules were instigated so that you would not be interviewed by anyone from your own region. My interviewers were a PFE manager in Bangalore and a PFE with god status, also from India. It was a one hour interview with a lot of challenging questions about how I do things and why. It took only 29 minutes and I figured that I was either awesome or completely rubbish.
Two weeks later again and my boss texted me to say I'd be heading to London for a week of training with a company that specialises in making people great presenters in all the areas I mentioned above. People pay a lot of money to be trained by them. They aren't Microsoft people. They are an external group. PFE is funding the whole thing and investing in the 16 PFEs who were chosen.
The reason I am telling you this is because I am pretty proud of myself. Not as hugely proud as my family is but still pretty stoked about getting this chance.
Out of 3009 PFEs in Microsoft and 516 in Asia, I competed and won a place to extend my current skills in an area that I do just for the fun of it.
I am famous for sharing my first world problems and complaining about how work isn't funding a handsome underwear model to rub my feet while I work from my home on a yacht in the Greek Islands. Ok, that isn't true. He's just a jeans model.
The point is, I like blogging and talking at people and presenting and improving those skills constantly. I like sharing the passion and the knowledge and the opinions with those funny people who for some reason read what I write. This is something I do for no benefit than my own sense of contributing and participating. For the first time, I am being actively encouraged to do so and to learn more.
Well done me. Now I'm off to London to visit the Queen.
Sunday, 9 December 2012
Don't Virtualise Everything
There seems a need in the dev and the ops world to virtualise everything. Everything!
People talk of it as the second coming. We can scale. We can spin up any environment without over-preparing or extra investment or asking permission.
Like the cloud, talk of virtual machines solving every problem imaginable is all the go.
Like all new technologies, they bring you benefits but they are not the answer to everything.
Good engineering and common sense must always be applied, especially in times of wonder.
One place that you can not 100% virtualise is in testing.
Twice in the last four months, I have had to walk in to situations where the issue was testing an app in an updated SOE that had only been tested in a purely virtualised test environment.
One had issues with drivers and the other with an out of date BIOS version.
When you are running in a virtual machine (VM), it is an emulator. As much as possible is handled inside the emulator but one thing that makes a VM so portable is that it is piggybacked on the host operating system. One thing you can count on is that when it falls back to embedded calls to hardware that it falls back to the native OS and its drivers.
Underneath that is the BIOS and although you can mostly count on that, nothing is guaranteed.
In the two cases I saw, the problem happened under load and pushed the boundaries that would never have been tested because it was impossible to simulate in a non-native environment. Although operating systems were tested, bespoke applications were assumed to pass all tests if they did so inside the VM.
There is no need to test everything outside of a VM though but you should at some point in the testing journey. My suggestion is...
Unit test in a VM.
System of Integration test in a VM.
Functionally test in a VM.
At least Performance or Hardware Integration test on the native hardware with the native operating system.
Nothing beats reality.
Nothing.
Subscribe to:
Comments (Atom)
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...
-
Recently I was asked to disable the submit event being triggered when the enter key is hit in a textbox input. This is for an ASP.NET MVC ap...
-
despair.com Recently, we (on the Interblag) have gone through another wave of controversial discussions about people who shouldn't be w...
-
After posting a quick how-to about Ruby-LDAP , I received a couple of very helpful comments that pointed me towards ruby-net-ldap . This is ...









.jpg)