Sunday, January 8, 2012

More on Servant Leadership: Commitment to your teammates

I've been practicing something called Servant Leadership for about two years now. This discipline entails being a support role, from solving your teammates' problems to inspiring confidence in your teammates.

Prior to reading The Fifth Discipline (Peter Senge) and The World's Most Powerful Leadership Principle (James C. Hunter) -- I thought that "Leadership" was what you did: the budgets, the allocations, the task descriptions, the software specifications, and the meetings. While I do think those are typical tasks that  "leader" may be responsible for -- I certainly believe that "leadership" is who you are.

The true foundation of leadership is not power, but authority, which is built upon relationships, love, service, and sacrifice. Being able to stir the hearts of your teammates and inspire them with confidence is the mark of a true leader.

Characteristics of a Servant Leader
  • Listening: Traditionally, and also in servant leadership, managers are required to have communication skills as well as the competence to make decisions. A servant leader has the motivation to listen actively to subordinates and support them in decision identification. The servant leader particularly needs to pay attention to what remains unspoken in the management setting. This means relying on his inner voice in order to find out what the body, mind and spirit are communicating.
  • Empathy: A servant leader attempts to understand and empathize with others. Workers may be considered not only as employees, but also as people who need respect and appreciation for their personal development. As a result, leadership is seen as a special type of human work, which ultimately generates a competitive advantage.
  • Healing: A great strength of a Servant Leader is the ability for healing one’s self and others. A servant leader tries to help people solve their problems and conflicts in relationships, because he wants to encourage and support the personal development of each individual. This leads to the formation of a business culture, in which the working environment is dynamic, fun and free of the fear of failure.
  • Awareness: A servant leader needs to gain general awareness and especially self-awareness. He has the ability to view situations from a more integrated, holistic position. As a result, he gets a better understanding about ethics and values.
  • Persuasion: A Servant Leader does not take advantage of her power and status by coercing compliance; she rather tries to convince those she manages. This element distinguishes servant leadership most clearly from traditional, authoritarian models and can be traced back to the religious views of Robert Greenleaf.
  • Conceptualization: A servant leader thinks beyond day-to-day realities. That means he has the ability to see beyond the limits of the operating business and also focuses on long term operating goals. A Leader constructs a personal vision that only he can develop by reflecting on the meaning of life. As a result, he derives specific goals and implementation strategies.
  • Foresight: Foresight is the ability to foresee the likely outcome of a situation. It enables the servant leader to learn about the past and to achieve a better understanding about the current reality. It also enables the servant leader to identify consequences about the future. This characteristic is closely related to conceptualization.
  • Stewardship: CEOs, staffs and trustees have the task to hold their institution in trust for the greater good of society. In conclusion, servant leadership is seen as an obligation to help and serve others. Openness and persuasion are more important than control.
  • Commitment to the growth of people: A servant leader is convinced that people have an intrinsic value beyond their contributions as workers. Therefore, she should nurture the personal, professional and spiritual growth of employees. For example, she spends money for the personal and professional development of the people who make up her organization. The servant leader will also encourage the ideas of everyone and involve workers in decision making.
  • Building community: A servant leader identifies means to build a strong community within his organization and wants to develop a true community among businesses and institutions.

Being committed to the growth of people on your team and ensuring that they're treated as a person and not as a work horse is one of the most important things my mentors have taught me while aggressively pursuing my career growth. Incidentally, this means having to facilitate the situations that make that evolutionary process happen.

First thing is first: let go. One of the most difficult things to do is to get over the fact that you need status reports at every checkpoint (typically how you measure progress). Truthfully, we should all be results-oriented. Ultimately, I've thrown in a few points in regards to really start inspiring your teammates with the confidence they need to push the limits of your product (using strategies from Servant Leadership practices).

  • Tone down the policies and procedures 
  • Give your teammates freedom -- Let them take ownership and be creative
  • Trust your teammates to get the job done
  • Start building cool stuff and improving your product 
  • Tighten up the customer-product development feedback loop
  • Keep infinitely asking: "How can we have more fun?"
  • Keep infinitely asking: "Do our customers love using our product?" 

Good luck and have fun,
Jaime Bueza

Jaime Bueza is a software engineer in Vancouver, British Columbia, Canada. He has developed web applications for Nintendo, Starbucks, Bacardi, Nike, Electronic Arts, Ritchie Brothers, Kiwi Collections, Cox Communications and Microsoft. When he's not developing useful software that constantly evolves with business requirements, he's writing open source software.

Saturday, January 7, 2012

How A-Trak Increases Developer Productivity on Windows Azure

I've recently been working on non-.NET technologies on Windows Azure platform and I'm finding it amazingly fun and easy. From NodeJS to PHP, I'm finding it easier and easier as time goes on that the tooling Microsoft is releasing makes developers lives easier.

That said, at Agile Business Cloud, we're also in alignment with Microsoft's shared vision of making developers' lives easier on Windows Azure. I'd like to announce A-Trak, A Windows Azure Blob Synchronizer and Windows Azure Asset Pipeline (WAZAP).

A-Trak allows developers to easily push files from your machine into Microsoft's public Cloud within 1 easy step (command-line invocation). Additionally, it allows you do synchronization between more blob storage accounts in the following use cases:

Blob → Blob
Blob → Folder
Folder → Blob
Folder → Folder


When quickly spinning up a Wordpress hosted service on Azure, we didn't want to deal with the insanity of a bug when redeploying packages to Azure -- It's in line with this issue. We wanted to extract all resources on our Wordpress theme and pull them in from Windows Azure Blob Storage. Incidentally, our older workflow relied on changes to code in our source tree, then repackaging the PHP WebRole, then shipping it off to Azure.

This triggers a serious issue in Wordpress where you lose auto_increment on all posts in wp_posts table. As a consequence, your administrators lose all abilities to add or update posts/pages; however, you are able to "Quick Publish" a page through the Wordpress Dashboard user interface.

This needed to change.

As front-end engineer, you end up building up your "assets" directory, which contains JS/CSS/images as the front-end begins to evolve into something that a user can easily interact with. A packaging process where you do upgrades or VIP swap after a staging deploy seemed way too disconnected in terms of programming paradigms. Instead, we've taken an approach where a Front-End Engineer can have a command prompt and invoke A-Trak to push their "assets" directory straight to the cloud.

In the end, we have a very simple setup: Wordpress on Azure (no customizations), our own RESAAS theme to avoid any theme-clobbering (overwrites), content changes from administrators, and the presentation layer (CSS/JavaScript/Images) being hosted on Windows Azure Blob Storage.

Thanks Jef King!

Good luck and have fun,
Jaime Bueza

Jaime Bueza is a software engineer in Vancouver, British Columbia, Canada. He has developed web applications for Nintendo, Starbucks, Bacardi, Nike, Electronic Arts, Ritchie Brothers, Kiwi Collections, Cox Communications and Microsoft. When he's not developing useful software that constantly evolves with business requirements, he's writing open source software and helping developers in the Windows Azure NodeJS community.

Sunday, January 1, 2012

2011 Rundown by Jaime Bueza

2011 has been an amazing year for me. I've written notes on what I've taken on and what I plan to make better in the coming year.

- Launched True Originals for Bacardi, a social network for bar tenders
- Launched Kinect Share for Microsoft -- Microsoft's community site for Kinect enthusiasts. It integrates with SXP on Windows Azure
- Launched Salutation Nation for lululemon
- Won an ACE Award for outstanding work ethic, dedication, passion and hard work at Blast Radius
- Left Blast Radius in August 24th, 2011 to help build the RESAAS Core Platform (product) at RESAAS
- Joined up with RESAAS as a Front-End Engineer
- Joined up with Agile Business Cloud Solutions as a Chief Experience Officer (CXO).
- Launched first version of Azure-based real-time graphing on Agile Business Cloud
- Launched new homepage for RESAAS
- Launched the first of many Facebook apps
- Visited Redmond, Washington (Microsoft campus)

Open Source Initiatives
- Wrote Microcosm - Social Network Simulation tool, allows you to simulate hundreds of thousands of requests against an array of web services to help you demo a living, breathing social network. This project sprung up because demonstrations with the client were too static and user counts were too low to be "a social network" -- With this tool, we injected 160,000 users and had them randomly doing things to each other, commenting, following, unfollowing, etc.
- Wrote Blast Mojo v2 -- It has grown from its Dojo roots to become a structured layer on top of jQuery while leveraging its massive plugin community via dependency injection. It is simply structure with jQuery, much like Backbone in the sense that you get to use Controllers, Models, PubSub, Service Locator to help your teams write code in a more organized fashion and use common software engineering paradigms.
- Created a screencast that would be a rundown of Blast Mojo.
- Wrote Cid, image bundler service using JSONP+Base64+jQuery, it automatically base64 encodes all images on the page with a cid-src attribute and decreases HTTP requests.
- Wrote NodeJS Redis URL Shortener -- Allows you to easily shorten URLs using Redis as its storage
- Wrote NodeJS Windows Azure Table Storage URL Shortener -- Allows you to easily shorten URLs using Azure Table Storage as its storage.
- Did a talk on developing and deploying NodeJS applications on Windows Azure in December

- Read Inspired: how to build products that customers love
- Read Drive by Dan Pink
- Read World's Most Powerful Leadership Principle: Servant Leadership by James Hunter
- Read Cracking the Code Interview -- This book is where I beefed up my knowledge of algorithms, a really great book for any aspiring programmer
- Read The Necessary Revolution: How Individuals And Organizations Are Working Together to Create a Sustainable World by Peter Senge
- Re-read Mythical Man Month -- An all-time favourite of mine. I try to do this every year and I highly recommend reading this book to any aspiring software engineer

- More test-driven development & behaviour-driven development
- Build more HTML5 prototypes
- Foster a community of innovation at RESAAS by growing our front-end team
- Do more talks at the Vancouver Azure group
- Evangelize Windows Azure more!
- Write more tools in JavaScript, PHP, C# for the community (Github)
- Do more Scala with the Play Framework (Deploy on Windows Azure)
- Be more healthy, reduce junk food intake (includes pop, fast food, etc)
- Go to the gym at least 3 times a week

There we have it! I wish you all a great 2012!

Good luck and have fun,
Jaime Bueza

Jaime Bueza is a software developer in Vancouver, British Columbia, Canada. He has developed web applications for Nintendo, Starbucks, Electronic Arts, Ritchie Brothers, Kiwi Collections, Cox Communications and Microsoft. When he's not developing useful software that constantly evolves with business requirements, he's creating tutorial videos for aspiring front-end developers.