Skip to main content

Posts

Showing posts from October, 2010

Distributed Development / Divorced Software Development

In an attempt to dispel the level of optimism in distributed teams: I'd like to negatively state that divorcing your team like this is the worst way to achieve team efficiency and sustain a high level of quality in your products. None the less, it still happens project to project. I've bounced back and forth between teams where we've stuck in pods (all in one common area) and some where I'm dealing with teammates in a different continent. Sadly, most of the projects that have somehow dwindled down the path of hiring cross continent resources have been the most stressful.

It's not the people that cause problems. As a matter of fact, the team is usually composed of wonderfully talented and smart people -- It's the ineffective communication channels that get incorporated into the delivery process that ultimately divorces team/client expectations.

My primary concern about distributed teams is that upper management fails to see the overall picture of software deliv…

What If

Have you ever asked yourself "what if" when you reach a point in your life where you could've acted on an opportunity? I've been an evangelist of the following quote: "you miss 100% of your shots you don't take". After having this ingrained in my mind for so long, I've come to realize that I am almost always disappointed with myself. Every opportunity I take advantage of, I'm always disappointed--It's like I constantly become blinded: I look at the situation negatively and see how I could've done things better. I feel like a plethora of opportunities lead to an infinite loop of disappointments.

Do I need to dispel my blindness and take the time to cherish the small victories in life? or learn to let things go when mistakes happen? Do I need to stop consistently blaming myself for anything that goes wrong in life? Do I need to sink back down to reality and accept the fact that "I can't always be the hero"?

An endless list o…

Mentors

In my life quest to figure out the deeper arcanes of social dynamics and emotional intelligence--I've taken notes on patterns of behaviour and characteristics in most great leaders of our time. Frequently, I hear the phrase, "person of integrity" being used to describe leaders.

What does it mean to be a person of integrity?

Wikipedia has the following definition:

Integrity is a concept of consistency of actions, values, methods, measures, principles, expectations and outcomes. In western ethics, integrity is regarded as the quality of having an intuitive sense of honesty and truthfulness in regard to the motivations for one's actions.
Reflecting on my own career--I've been very fortunate to have been led by great individuals that exhibit the level of integrity that Wikipedia describes. In all honesty, my leaders have always been great mentors: they've taught me how to react to situations, how to be as technical as I am today, and how to communicate effective…

Adding and deleting git tags

Adding a git tagCommon Case:
Johnny is the developer on a project that is about to go-live. Their codebase has passed all unit tests and functional/behavioural tests from QA. Before going live, he needs to tag the current revision so that his whole team can easily backtrack and possibly fix any last minute bugs before launch but also make it so that his team can also keep pushing code to the master branch.

Create the tag:$ git tag -a v1.0.0 -m "2010-10-10 Production-Ready"

Double check which tag was created:$ git describe --tags

Push tags to your repository$ git push --tags

Deleting a git tagCommon Case:
Johnny accidentally created a tag called "v1.9.0" instead of "v1.0.0". He needs to simply delete this tag so it doesn't confuse other developers.

Delete the tag$ git tag -d v1.9.0
Push the deletion of the tag to your repository$ git push origin :refs/tags/v1.9.0


Good luck and have fun,
Jaime Bueza

Jaime Bueza is a software developer in Vancouver, British Col…

Why We Still Need Heroes

History has proven time and time again that the world needs heroes. People who are helpful, selfless and dedicate themselves to a cause--a high level initiative. In the realm of software delivery, where you have to ship a product on a tight deadline, you often face burnouts and frustrations--a seemingly impossible uphill battle. That's why you call on your heroes...

Horatio Hornblower was a British admiral full of integrity, courage, and intelligence. He fully understood the potential and limitations of his team. Without any hesitation, he answered Britain's heroic calling to engage Napoleon head on.

While waiting at his Mediterranean rendezvous point for the rest of his squadron—and its commander—to arrive, he carries out a series of raids against the French along the south coast of Spain. He learns that a French squadron of four ships of the line is loose, having slipped the blockade. He decides that his duty requires that he fight at one-to-four odds to prevent them from en…

Understanding Your Team

Have you ever been put on a team that is so brilliant and talented and somehow the project is frustrating to deliver? I've come to realize that when working with a team of great people, there needs to be a level of transparency and level of understanding of what we're trying to build as a whole. In the agency realm, typically you'll have 4 disciplines working together to ship a website:

1) Design (Creative)
2) Development (Frontend and backend)
3) Client Services (Project manager)
4) Quality Assurance

My evolved thinking has brought me to the conclusion that there can't be such a thing as blame. Understanding the delivery as a whole will help dispel the shackles of each discipline. Furthermore, each member of a discipline should fully understand how much of an impact their decisions will make on another part of the system. For example, a designer can choose to break consistency by readjusting the website's grid on a particular page. This would have a negative impa…

Random Thought at 1am: Treating People Like Human Beings

I've changed a lot since I came out of post secondary.

When I first came out of post secondary (BCIT), I was a driven, dedicated, and passionate knowledge-hungry kid that wanted to tackle each and every challenge on my path to glory. After developing my technical skills, I solidified myself as a maven for writing great code and building great software. Negatively, on my career path, I came across many different people that end up not treating me for who I am. In my past, I've been often labeled as a "kid" or "inexperienced codemonkey" in the workplace. I believe that if someone wants to label me as that then they can--it's completely their opinion; however, someone shouldn't be completely ignoring my technical opinion because of the limited number of years I've been programming--That's ageism.

One thing that holds true about technology and design is that everything changes so fast. "Highly experienced developers" can legitimately b…