awaid's blog

ReMIX South 2011 - "I can't wait for the next event"

This past weekend 400+ designers and developers gathered in Atlanta for the 2nd Annual #ReMIXSouth Event. Featuring break-out track sessions in: UX, Web, Mobile&Tablet, and Kinect, audiences had a chance to interact with fellow tech pros and learn from top-notch presenters alike. MATRIX was proud to help sponsor such a great event. We also want to give a big congratulations to Holly Reynolds who won our drawing for a $200 gift card.

MATRIX at ReMIXSouth 2011One of our friends and attendees, Michael Faber said:

"The ReMIX South Sessions were truly a blast. Being able to socialize and meet others in my field was great, but the highlight of my experience was the seminar hosted by Jenn Downs of Mail Chimp, it reminded me how much fun you truly can have in a User Interface environment. I can't wait for the next event."

Heather Perez, MATRIX Technology Recruiter, was one of our teammates that attended the event and said:

"I talked with a lot of developers and designers who were impressed with the speakers that presented and the sessions they were able to select from.  Many had a hard time deciding among them!"

Be sure to check out their Flickr page and the ReMIX South website for future events along with more information about this year's presenters.

About the Author: 

Adam Waid is the Director of Marketing at Mediacurrrent, an industry-leader in helping organizations architect custom Drupal websites. Adam is also a MATRIX Alumnus, where he worked closely with the Sales and Recruiting organizations to develop differentiation strategies, create content, and drive CRM and social media initiatives with a single goal in mind - build stronger, more meaningful relationships with our clients. Leveraging new technology, the latest social media trends, and a good mix of traditional marketing, Adam grows online communities.   Follow Adam on Twitter and Read his Social Media Blog.

Posted in: 
Bookmark and Share

Wellness in the Workplace

When do you feel you are at your most productive at work and in everyday life?

I bet it’s when you feel good – when you feel your best. If people feel healthy, then they are happier and have better attitudes – all of which make them better at work!

Here are some simple things that can make you feel your best at all times.


The better you eat, the better you feel.  If you honestly look at what you eat and how you feel afterwards, you might change some things.  Here are three simple things you can do today that don’t require anything special:

  1. Eat breakfast.  It really doesn’t take much. I personally like protein first thing in the morning and eat spinach and scrambled eggs every morning and it takes 5 minutes.  Other good options: toast with peanut butter (wholesome bread and natural peanut butter are key), oatmeal (watch the sugar), yogurt or cottage cheese with fruit, cereal with milk.  If you really are stretched, then keep healthy bars at your desk at work. Many studies have shown that people who eat a good breakfast maintain the healthiest weights.
  2. Stay hydrated during the day.  If you are feeling sluggish, tired and/or hungry, first try some water and I bet you will feel better.  Many people are chronically dehydrated and this is a quick fix.  Water is best but even I struggle with too much plain water so I add a splash of cranberry juice.  Try to stay away from full strength juices, sodas, etc. as they add a lot of calories and unnecessary sugar which will make you slump all over again.
  3. Use a salad plate to eat dinner.  It is automatic portion control and you won’t miss it.  Your eyes only know that it is a full plate, and, trust me, it’s enough food for you.

ExerciseWellness at Work

You knew I was going to say it!  You don’t have to do a hardcore 60 minute workout to have the benefits.  Just do something…the old sayings of “bodies in motion stay in motion and energy begets energy” are so true.  If you are active, you have more energy.  And studies all show how activity improves brain function, memory, productivity, hormone changes, etc. etc.  Hopefully in addition to your workouts, make activity part of your everyday life…

  1. Park your car furthest from the entrance at work and get a little walk in.
  2. Strength training is important and easy!  In your cube, you can
    Push-ups - put your hands on your desk, feet on the floor and go.
    Squats - feet wider than hips, and put the weight in your heels. 
    Sit on a stability ball - a conversation starter which helps with core strengthening.
  3. Get up from your desk once an hour – talk to a colleague, use a bathroom on the other side of the floor…just walk around and stretch a little

Stress Relief

Here are the key things that help me control the stress in my life.

  1. Sleep – get it and get enough!  I’m good for 8 hours a night…and I plan for when I need to go bed based on when I will get up (which is pretty consistent).  Make sure you wind down and relax before going to bed.  Turn off the TV, the computer, etc. and relax.
  2. Organize – three key areas to organize that will make your life easier:
       a.  Your In/Out of the house routine – everything should have a home when you walk in the door.
       b.  Getting dressed – if your closet is organized, you should be able to get dressed in less than 5 minutes.
            Tip: only have things that fit and look great and put in them in order.
       c.  Cooking – Make sure things are logically in place and everything has a home.
            I pre-package grapes, snacks, etc. to make it quick.
  3. Have some fun! Call or meet your friends, touch base with family, keep up with your hobbies, play a sport, etc.  Do things you enjoy and you will naturally relax and feel good.  Studies show that even introverts gain energy from reaching out to other people.
About the Author: 

Chrissy Petri is an Account Manager for MATRIX Resources with 15+ years in the IT recruiting industry in Atlanta. She works with small, medium, and large companies to find IT talent from Help Desk to Programmers to Project Managers and Directors.

Posted in: 
Bookmark and Share

Agile Project Management—No Upfront Estimates!

I’ve been managing software projects for much of my career. Early on, I spent most of my time trying to estimate projects more and more effectively. I pulled together models for how to estimate. I kept track of historical estimate vs. actual data, so that I could evaluate the quality of my estimates. I even tried some modeling or arithmetic techniques to fine tune my estimates. Some of these are quite well know techniques like Function Points or Cocomo or the Personal Software Process.

Agile Project ManagementAll of this was focused towards estimate quality…not software product quality. I was worrying about how to represent the time to build the software to stakeholders and accountants so that we could reasonably know how much it would cost. Then we could make better decisions around whether to start it or not.

The odd thing, at least in my experience was that no matter how hard I tried nor how much effort I expended on estimation and planning, over 60% of my projects went awry. They failed. They were Death Marches. They were incredibly painful. And in many cases, they resulted in people losing their jobs.

I guess my point is—estimation is incredibly hard.

Now you may say, well Bob, you simply were poor at estimation and didn’t really perform it all that well. My counter is that I am really good at estimation. I’ve studied a wide variety of techniques and applied them diligently. I’ve even taught software estimation at international conferences. So, while I still have much to learn, I’m not a tool-less novice.

And I guess my other more crucial point is—estimation was the wrong place to be focusing my efforts!

What the Agile Methods Taught Me

When I first was introduced to the agile methods I was struck with the practicality of the planning. Instead of focusing on planning & estimation, the methods broke things down into two levels—high level release forecasting and low level detailed iterative planning. More importantly, it was the interplay between these two levels over time that refined your estimates.

No longer did you try to predict a guaranteed endpoint for a project. Instead you gave a reasonable, high level view that you promised to refine every time you got real-time performance results from your team. You would then narrow your view over time as you iteratively gained traction delivering real, working software. At each point of actual data, you would update your release plan / model and re-communicate to stakeholders where things actually stood in relation to their expectations and your previous views.

If you were behind schedule, stakeholders had the option of dropping, reducing, or re-framing scope based on business value and priority. But in order to hold to a date, they would have to adjust something. If you were ahead of schedule, a not so rare event, they could pull in more value-based scope and deliver more than anticipated.

High Level – Release Planning

The methods don’t spend a lot of time estimating in excruciating detail at the high level. Instead you estimate work (usually expressed as User Stories) in generic level of effort/complexity units (usually expressed as Story Points) so that you can plan the number of stories you can fit into a series of sprints to meet a content commitment for your stakeholder.

Remember, release planning isn’t a firm commitment. Nor is it exhaustive, detailed planning. It’s a best guess, high level view to packing work into iteration sized time-boxes. However, there’s a missing point to accurately planning a release. What you might ask?

It’s the teams’ own velocity. Put another way, the teams’ ability to execute and deliver fully done stories within your iteration time-box. The first time your team actually delivers work from a 2-week sprint you have a wonderful data point—actual team velocity! Please don’t undervalue it.

Low Level – Sprint Planning

But I got a bit ahead of myself.

In the agile methods, where does the team dig into the details? Refining tasks, looking at dependencies, breaking things down into smaller, quantified (hourly) units of real work to be completed? They do that on an iteration (Sprint) by iteration basis—grabbing a small “chunk” of the work, always the highest priority and most urgent work, and breaking it down for the very next Sprint.

If you ever get the chance to attend a proper Sprint Planning session, you’ll have transparent access into a software team breaking down work into very small tasks. You’ll begin to understand all of the complexity and nuance for each story. You’ll hear the testers challenging the developers on testability and how challenging this piece of code will be to test—which will add more tasks for testing and quality.

If the team feels a more detailed design is required, you’ll hear them discuss it. How much? Who should be a part of it? And what does the review look like? Etc.

In general, you’ll experience all of the complex gory details of software development—the real work involved for a single sprint. Then they’ll do something wonderful. They’ll commit to the work and deliver what they can (fully done) at the end of the sprint. You’ll now have an actual data point for the teams’ capacity that you can compare and contrast against the overall release plan—with full transparency into the plans and details and with no extra padding allowed.

How cool is that?

Wrapping Up

I do quite a bit of sharing on agile methods nowadays—via presentations, formal training, and coaching. Believe it or not, I often get challenged on some critical aspects or techniques surrounding agile. None more than the point being made here.

The challenge goes – “There’s no way my boss will put up with a non-committed date for a project” or a “We’ll know how long it will take when we see it” approach to project estimation will not work in my company because we live in the “real world”.

My counter then is usually the same—“Fine, do what you’ve always done”. Try to predict the future on a highly complex software project without doing any real development. If you can guess correctly, then great—stick with your practices.

BUT, if you notice that you often fail. And by often I mean 50%, 60%, 70% or even 80% of the time to successfully meet your stakeholders expectations, THEN you’re practices are clearly not working for you.

Admit that and try something a bit different. Agile Project Managers make the above approach work every day in a wide variety of business, customer, and technology contexts. It’s no longer a bleeding edge technique! It simply drives more real-time transparency into project progress. It helps with adjustment based decision-making. And it leads to more collaborative and successful outcomes.

From my perspective, if your methods aren’t working that well for you then what do you have to lose? So, what DO you have to lose?

About the Author: 

Bob Galen is the Director, Agile Practices at iContact and founder of RGCG, LLC a technical consulting company focused towards increasing agility and pragmatism within software projects and teams. He has over 25 years of experience as a software developer, tester, project manager and leader. Bob regularly consults, writes and is a popular speaker on a wide variety of software topics. He is also the author of the book Scrum Product Ownership – Balancing Value from the Inside Out. He can be reached at

Posted in: 
Bookmark and Share

Adventures in Publishing Land

I like playing by the rules. Not because I'm paranoid or anything. I just don't find a lot of fun in breaking the law. So when I heard a song on the radio that I wanted to use as background music for a video to post on YouTube, I knew I needed to get the rights to use it first. This was the first time I'd tried doing something like this, so I went at it blindly and followed a logical and very down-to-earth course of action--

Publishing LandOver the bridge to Publishing Land.

First, I searched for the song on YouTube and followed the link to the band's channel. The fairies of Pandora were singing happily along as I waltzed on from there to the band's official website. And froze.

The website was in Italian. I don't speak Italian.

Through the flowery field of Facebook.

Thank goodness for social networking. An Uncle of a friend of my Dad's helped me translate my letter into Italian. After employing the help of the generous and almighty Google to find a contact email for the band-- I sent it to them. Ciao, II mio nome è Garbers Annika, una ragazza di 13 anni, --etc.

Wading the swamp of endless research.

A day later, I received an email back.

“Ciao Annika, for this song you might want to ask for permission to the record company who has the rights for USA. All the best.”


Search engines are tricky creatures. They seem to know whenever you really want to find something, and then they hide it from you. Mischievous little things. After attempting to persuade the ones on the record company's website for several hours, they finally showed me a PDF form to download and fill out. It had all sorts of questions about the “Production Budget” and “Exact Description of Scenes”.

I sank dumbly back into the comforting pillows of mildly amusing Vimeo videos for awhile, and then got up again and started filling out the form. I put $0 for the budget question... hoping that would be acceptable. This was just a video of one of our robotics competitions...

The forest of faxing and phones.

At the bottom of this form, it instructed you to fax it (erm... I don't remember ever faxing anything before...) to a certain number, along with a written letter of approval from the music publisher.

I had no idea who the music publisher for the song was... Again to consult the great Google!

I found.... a phone number. I called it and the person who answered gave me an email address to contact.

Sinking into the canyon of fails.

I sent my letter again – the English version this time – and waited.

And waited...

I never got a response back. Two weeks later, I finally gave up. I emerged from Publishing Land, my metaphorical feet worn out, my real-life head aching.

The lesson I learned – stay out of music licensing, little girl, because unless you have lots of experience, lots of time, and lots of money – there's no point in even trying to do the right thing.

A few days after my interesting little pilgrimage, my dad mentioned something about Creative Commons licensing. Since I was running out of tracks to use on the royalty-free music CD I had, and using other stuff seemed to be out of the question, I took a somewhat cautious stroll into the less-widely-known Creative Commons Country.

And fell in love.

The idea of CC licensing was created by passionate people who want to share their work with the world, without the crazy jumble that is record companies and music publishing. For a lot of people, and for me - this is an amazing resource. The different varieties of licenses are specific but easy-to-understand, and it's clear exactly what you are and aren't allowed to do with the music and what's expected of you.

I can understand why Publishing Land is so complicated for people who are making huge, high-budget movies or commercials, but, as far as I can tell, there's no golden bridge over the swamp if you're just a kid who wants to stick a video on YouTube.

So – I'm left here, in Creative Commons Country, happily discovering more and more music I love, and with a great appreciation for the people who created this beautiful alternative to the confusing and complicated Publishing Land.

About the Author: 

Annika Garbers is the co-founder and editor for and is working on developing a new website for kids and teens to learn about Drupal. She has taught other young people html and css and answered questions about website building from kids all over the world. You can reach her at or through her page at

Posted in: 
Bookmark and Share

SQL 101 - Select

The first thing you need to know when learning SQL is how to get data out of a database. This means learning the SELECT command. Using this command will get the SQL server to return data to you. You can use this command to do some simple math, or to do the common "Hello World!" application you all learn the first day of a programming course.

SELECT 1 + 1
> 2

SELECT 'Hello World'
>Hello World

Keeping this in mind can become useful later, when you need to have the server return debugging statements to you during particularly long code writing sessions. Usually you'll need the SELECT command to look up a certain piece of data from a table. The following examples are going to work from the AdventureWorks database. SQL 101You can install this database on your own instance of SQL, or you can contact me and I'll give you access to my test server. This is a new service I'm offering to anyone who wants to learn SQL!

In the AdventureWorks database, there's a table used to store products created/sold by this company. It's called Production.Product. (for now, let's ignore the fact the table name has two parts...I'll explain that later!) In this table there are several columns, one of which is product's name.

If you wanted to get a list of the name for every product in this table, you write the following command:

FROM Production.Product

SQL Table 1

This is just the first 4 items that showed up when I ran the query. You may see different names appear in your list. My data has been updated by myself, and other students accessing this database.

I'd like to point out the data returned is not ordered. In later articles I'll show you how to put the results into any order you may find useful. But for now, Let's stick to learning about the SELECT statement.

What if you wanted to know the name and the price? In SQL you can list as many columns as you like, in a comma separated list.

   Name, StandardCost
FROM Production.Products

SQl Table 2

This is the first 4 results I received.

Finally, if you want to return all the data of the table, you can do that too. But I would like to point out using the following command on a table with lots of rows (thousands, or millions) could be very time and processor consuming. Use this only if you know the number of records and columns will be small enough your server and connection can handle. There are also many reasons NOT to use this, most of which have to do with the fact SQL is a shared resource... asking for all the data causes your server to work harder for you, and as a result, there are fewer resources left for other users.

Use the SELECT * queries sparingly!

FROM Production.Products

SQL Table 3

There are more columns off to the right, but I've cleaned up the output to make it easier to read.

As always, if you have any questions, please let me know! I'm here to help you understand SQL better. Let me know how I can do that. Play around with multiple variations

About the Author: 

Look no further for expertise in: Business Analysis to gather the business requirements for the database; Database Architecting to design the logical design of the database; Database Development to actually build the objects needed by the business logic; finally, Database Administration to keep the database running in top form, and making sure there is a disaster recovery plan. Connect with Shannon Lowder.

Posted in: 
Bookmark and Share