Tag: trust

ProjectXyz: Why I Started A Team For My Hobby Project

ProjectXyz - Why I Started a Team

Who Needs A Team?!

I’ve been building RPG backends for as long as I’ve been able to code. I think my first one that I made for my grade 11 class is the only RPG that I “finished”… It was text-based and all you could do was fight AI via clicking attack, buy better weapons, level up, and repeat. It was also 10000 lines of VB6 code and so brutal that I couldn’t add anything to it without copying hundreds of lines of code.

Since then, I’ve had the itch. I keep rewriting this thing. I keep taking “Text RPG” (super cool and catchy, I know) and rewriting it. I had my first visual representation of this game called Macerus (here’s another rewrite for unity), which is actually how I landed my first co-op job. But every time I’d get so far, I’d decide I needed to rewrite it because I had messed up the architecture in some way and refactoring would be too much work.

My latest attempt is called ProjecyXyz, because I can’t come up with names. And funny enough, I just Googled it while writing this article and there’s actually a company with the same name… So maybe I’ll have to get more creative. ProjectXyz is supposed to be a very generic RPG game framework that allows new systems, mechanics, and game content to be dropped in, in addition to being independent of a front end for rendering.

It’s also something I’ve been making on my own. Because I’ve been making RPG backends on my own for years now. So who needs to have a team, right?

Too Much Pride For A Team

I think initially I wanted to do this all on my own because of pride. I also don’t think it was something I was conscious about except for the fact I looked at this project as my baby and something I could control the development of. I wasn’t consciously telling myself “I have to do this on my own so that I’m better than other people” or anything silly like that.

But why would I go ask others for help? They don’t code like me. They don’t have the same investment into this idea as me. They aren’t as passionate. They might have their own ideas for how to do things too! How could I have someone like that working on MY project?

Those are all pretty naive reasons for considering to work alone though. Sure, this is my pet project and I’m going to likely feel more attached to it than anyone else. That’s probably expected. It doesn’t mean that I can’t find people that are super interested in working on something like this. They could be totally passionate about learning different aspects of creating an RPG backend.

As for having their own ideas… That’s probably one of the BIGGEST reasons in FAVOUR of having a team! It’s easy to get scared about having other people put their ideas into something you feel like is “yours”. It might have taken a few years of working in the industry (currently just passed 6 years of working at Magnet Forensics), but it’s actually very common for other people to be contributing ideas into code bases you’re working on. It happens every day. Sometimes you have design meetings or code reviews or general architectural discussions and your idea ISN’T the one that’s picked. That’s cool! As long as everyone is striving for extensible and testable code, we can make changes if we need to going forward. You don’t need to make every decision and sometimes it’s much better that way. Other people are smart too 😉

Passion is Key for a Team

While the “team” I started isn’t an official team, it’s the first time I’ve been very open to having people directly contribute to my pet project. I think one of the most obvious reasons I became comfortable with this is because I found someone that was very passionate about exploring this space.

My colleague and I were talking about some of the concepts in ProjectXyz and where I wanted to go with it. Immediately he expressed interest in map generation and how that’s always been something he wanted to explore. How can maps be procedurally generated? Can we take this concept and generate maps on the fly? What are memory and runtime constraints? How do we represent this information in code? What about persistent storage?

I could immediately tell he was very curious about how a system like this might work. After several conversations with him about how he was starting to hack up some ideas and doing research on different algorithms, I knew he was passionate about it. We discussed working on some of these things together and contributing to the project code that I have, and we’ve been going back and forth for a few weeks now sharing ideas and his progress that he’s making for map generation. I’ve been hands off only really acting as a sounding board for him.

I think having someone passionate like this is critical for a small team. There’s going to be many barriers when working on a challenging project, and it’s easy to get bogged down and lose motivation when you’re stuck. Having additional people that are passionate about seeing progress in your project means you have some support for pushing through those hard times when you might lose motivation. If my colleague comes to me and says “I’ve been stuck on this issue and maps wont generate how I want…”, then I’m more than happy to sit down with him and talk through his algorithm and maybe where there’s an issue. I’m invested in seeing his piece come to fruition. Similarly, if I’m working on something like dynamic item generation for the game and I get stuck, I know he’s there to do the exact same thing. We both want to see this thing working how we intend.

So passion is important for a team. But is it sufficient? Is it the only requirement for adding a team member?

A Team is Built on Trust

Trust! Trust is a huge part of establishing a team because you need to be able to rely on each other. As mentioned, my colleague is passionate about working on this and has an interest in map generation. But what if I had never seen any of his code before? What if I didn’t know if he’s had practice with writing extensible code, testable code, following good design practices, etc… What if?

To be honest, I probably would be pretty nervous about him contributing code. It might be a huge barrier for me. I’d want to review his code and make sure it wasn’t “polluting” my pet project. I’ve re-written this code enough times that I really don’t want to have to think about rewriting it again! If I was nervous about someone contributing code I was going to need to re-write from scratch just to have an extensible design, it might not even be worth it having them contribute in the first place. It might actually create MORE work in the long run. It sounds selfish, but if the goal of adding someone to the team is to provide a net positive effect, then having to re-write code that isn’t up to par might be a deal breaker.

But that’s not the case here. I have multiple years of experience working with this colleague closely on various projects. We align to coding practices but still have our own twist on things. We value the same things in “good” code (extensible and testable). We use many of the same design patterns in similar situations. I’ve seen enough of his code to know that most of the time my comments about it are “oh, have you considered” and not “… you need to rewrite this”.

I can trust that what he wants to contribute will be aligned to my vision. I also can trust that new ideas he introduces are probably awesome new perspective that I hadn’t thought of. I also trust that if we disagree on something, we’re open to discussing it and coming to a resolution. So trust in this case certainly removes the barrier to entry to adding additional people to my hobby project.

Should You Form a Team?

While this was a pretty general article, I just wanted to get you thinking about opening up your hobby project(s) to other people to contribute. This is something I wish I would have considered more seriously early on. Maybe I wouldn’t be re-writing my project for the millionth time!

Some general points:

  • You’re not a “worse” programmer for getting other people contributing. Good programmers need to be able to work with others!
  • Other people can have good ideas too! Sometimes, they’re even better than your own ideas 😉
  • Other people may have more knowledge or interest in areas that need to get work done that you just don’t want to do! Perfect!
  • You’ll want to try and find people passionate about working in the area your project focuses
  • You’ll want to find people that you feel like you can trust so that you’re comfortable with them working on “your baby”
  • Getting help doesn’t mean your code must be “open source”. You can still share private repositories together (i.e. consider BitBucket!)

So what do you think? Is your hobby project kind of stale because you’ve hit enough roadblocks and it’s time to get some more firepower to tackle it?

Share your thoughts below about your experiences with forming teams for your hobby projects!


Halloween – Weekly Article Dump

Halloween at Magnet Forensics

Happy Halloween

Happy Halloween, everyone! I hope those of you who were out and about with your own little ghouls and ghosts had a safe Halloween this year.

Halloween costumes were pretty creative again this year at Magnet Forensics. I tried going with my own Horse Lime attempt, but it’s difficult when not many people know what the Horse Lime actually is. Regardless, my awesome mother put together the lime portion of my costume, and I was extremely grateful for that (and yes, I’m in my mid 20’s. No judging). I think it turned out pretty damn good.

This year, Saige won our Halloween costume contest. As Old Gregg, it was hard for that to not be a sure-fire win. Complete with Bailey’s in hand, I think the only thing that could have made it better was a set of watercolours to go with it. Absolutely awesome job.

On behalf of Team Magnet, Happy Halloween!

Articles

  • Kenneth Cole’s 10 Keys to Success: In this article by Teresa Rodriguez, we get a list of 10 tips from Kenneth Cole on success. While I don’t think there’s anything groundbreakind about them, I do think they’re all relatively straight forward. My main take aways are being innovative, being passionate about what you do, and create value. This article also has a bit of background on Mr. Cole that I wasn’t even aware of, so that was pretty interesting.
  • Community is Everything: How to Build Your Tribe: This article was kind of unique. It doesn’t necessarily apply directly to startups or business, but I see lots of parallels. Miki Agrawal writes about creating a “tribe” or a community of people around you. It’s really about placing positive people in your life, or go-getters in your business for the parallel. Again, no monumental secret tips in here, but it’s a great topic.
  • Performance Recognition: Cutting the Cost of Disengagement: This one is an infographic (and not really an article) about engagement and performance recognition. There are a lot of stats in there, but regardless of whether or not I trust the accuracy, I think the general points made are sound. Essentially, there are a lot of disengaged employeed in the global work force and it hurts productivity. By creating a culture of recognizing performance, you can help boost engagement which has all sorts of positive effects.
  • Code Review Like You Mean It: The first programming article for this week. Phil Haack discusses how to actually code review effectively. One of the key topics is taking breaks from long code reviews so you can maintain focus. Another is forgetting about the author when reviewiing and focusing solely on the code. Phil even put up his own code review checklist and suggests you have your own. Personally, I think I’ve kept a mental one but it probably would help to have it solidified.
  • Converse, Don’t Complain: This article by Hiroshi Mikitani had the most buzz from the things I shared this week. It really seemed to hit home with people, and I imagine it’s for a couple reasons. First of all, if you’re honest with yourself, you probably complain. You probably chat with at least one colleague you’re really close with and just flat out complain with them. You both don’t like something, so you vent. That’s definitely a comforting activity, and sometimes we need it. The flip side is you have authority or responsibility over something that people have problems with. Nobody is voicing any concerns to you (since they are just complaining among themselves) and if they are, there aren’t solutions being brought forward.The first of this two part solution to this is instead of whining, start coming up with potential solutions. It doesn’t matter how big or small your ideas are, start thinking about what a solution might be. The second part is communication. If you want something to get resolved, you need to bring your concerns with potential solutions forward. If you only complain and vent to one person, your concerns won’t be heard. If you only ever whine about something not being correct, then you’re doing a half-assed job at trying to come to a solution.
  • Lead by Example and Emulate Ideal: This one is a plug for my own article. I decided I’d write about why leading by example is actually more powerful than some people think. You have a lot of eyes on you as a leader, and you may not realize it. By leading by example and emulating the attributes you consider ideal, people will catch on to it.
  • Keys to Productivity: I’ve sort of noticed this through my own experiences so far, but early morning and late at night are great times to be productive. When there are a lot of stresses on you during the day, sometimes it feels like you’re not being productive. It doesn’t necessarily mean that you aren’t, but it’s your own perception. Getting a head start on the ay by getting into the office early, or staying up late for your own creative endeavours can prove to feel really rewarding.
  • Build Trust Through Training, Transparency and Trials: I’ve shared articles from this series by Jake Wood before, but this is another standout one for me. Trust isn’t something you can just put into your company values or your mission statement. Trust is something you have to live out each and every day in your organization. We can all say we value it, but if you aren’t willing to live it out, then it’s not something you truly value. One quote I really like from the article is:

    Transparency cannot happen unless your leadership regularly visits the “front lines,” wherever that may be in your business.

  • Here Is What Smart Companies Get That Others Don’t: The first of the three points offered in this article is that smart companies think differently. They are leaders and not followers when it comes to everything they do. The second is that they sell their culture. Their culture is actually core to their business and their organization, not some after thought. The third is that they help others become smarter. Provide value and become something that other people and business want and need to use.
  • Why Good Strategies Often Fall Apart: Ron Ashkenas highlights a few reasons why strategies that look great sometimes just don’t work. The first two points he makes in his article are the ones I want to highlight. The first is passive aggressive disagreement. Not everyone is going to be on board with all parts of all changes, so you’re going to have people that disagree. If the culture does not actively embrace people being able to voice their concerns, it’s difficult to carry out a successful strategy. Individuals might complain, but they wont end up doing anything about it. The second is something along the lines of “being too nice”. Trying to avoid confrontation because you’re afraid of it is a recipe for disaster. If you actually encourage open communication and trust, then being able to have hard discussions about something can be really powerful.
  • Three Things that Actually Motivate Employees: This probably isn’t new to a lot of people, but money (after a certain point) isn’t the driving force for employee motivation. The three things outline in this article are mastery, membership, and meaning. Employees want to be able to mastery their skill sets, learn, and get better at the things they do. Individuals within the organization want to have a sense of community. They want to feel like they align with the people they work with and their working toward a common goal. Employees also want to work on something that has meaning. Work that has a large positive impact is extremely motivating.

Happy Halloween! Remember to follow Dev Leader on social media outlets to get these updates through the week.

Nick Cosentino – LinkedIn
Nick Cosentino – Twitter
Dev Leader – Facebook
Dev Leader – Google+
Nick’s CodeProject Articles


Lead by Example and Emulate Ideal

Lead by Example and Emulate Ideal (Image by http://www.sxc.hu/)

Background

Leadership has become a big focus for me as I start to grow more into my role at Magnet Forensics. As a developer, I feel like it’s easy to gain basic knowledge and experience with unfamiliar programming territory just by surfing The Internet. With leadership, that’s certainly not the case for me.

What’s my most recent realization? Lead by example if you expect anyone to take you seriously. As a young leader (and with little professional experience in a leadership role), I think this becomes especially important. When you lead by example, you’re showing others that you’re really behind what you’re preaching.

Lead by Example: A Simple How-to

Maybe it’s obvious, but I really don’t think I’m over simplifying my message when I say it. To lead by example, you just do what you expect other people to do. Obvious, right? If you’ve been working for long enough, you’ve probably had a boss that you thought was doing a poor job. There’s many reasons for this, and I don’t want to turn this into a negative-dwelling-unhappy-rant party, but one such reason is it felt like they were just passing down orders to you.

What’s more disengaging than having someone that’s locked up in a room come out every couple of hours to assign you a new task? This boss of yours was doing a poor job of demonstrating meaning to you. Why was doing what he or she was telling you to do was the right thing-the thing that’s going to help get the company to the next step? He or she was not using what I would now call leadership rule #1: lead by example.

Okay. So you’ve envisioned the times when it sucked. We’re off to a good start, because hopefully things can only look up from here. What would you have done differently if you were in your old boss’s shoes and you wanted to inspire an alternate-universe-you to do a good job? There’s probably a handful of things you can think of (and for certain people with certain bosses, maybe that handful is multiple gorilla-sized handfuls).

What if your boss, your manager, or your leader had actually sat down with you and guided you through their expectations? What if the first time through a particular task you sat together and worked through it as a team? What if there was nothing left unclear and you could truly get behind what you were being told? I’m sure you wouldn’t feel resentful of the almighty boss throwing down orders like lightning bolts from the heavens if that was the case.

But why? Here are a few reasons:

  • The clarity of expectations becomes established. There’s a lot less guessing work. Being able to establish clear expectations at work is key to building trust and having successful teams.
  • You buy in. When someone can lead by example, they’re proving to you why they value something. It’s a lot easier to get behind them compared to someone else who has never proved their knowledge, skills, or experience to you.
  • It becomes more like a peer relationship when receiving work. Initially, you feel like you’re shadowing someone that you can more easily relate to. When it comes time to take the reins, you don’t feel like you’re pulling your manager in a carriage behind you.

Emulate Ideal

As a leader, you’d be shocked if you realized just how much of an effect you have on other people. You don’t have to be the CEO or manage 100 teams of 100 people to have the influence either. The even more surprising part? A lot of your influence is actually not a conscious effort on your part. Boom.

The reason I’m suggesting that as a leader you should be emulating ideal is because people will pick up on it. People see how you act, whether good or bad, and will learn to emulate your own behavior. If you’re a hard worker who gets things done, your teammates will learn that that’s what drives the team’s success. If you’re always putting down people’s work, then it will be the norm for nobody to really have an appreciation for the work of others. If you’re watching YouTube and surfing the net all day, that’s now acceptable behavior for everyone else. Repeatedly show up late for or flake out on meetings? Don’t be surprised if meetings become less effective. Constantly encouraging people and acknowledging their successes? You’ll start to see others praising each other. These might be generalizations of course, but if everything else is aligned I’m sure you’ll see these kinds of trends.

This truly is often overlooked. Once you’ve gained respect from people and you have their attention, your actions will have a big impact. So now instead of expecting your team members to act in accordance of what you think is ideal, why not live it out yourself? They’ll automatically start making the transition, especially if you’ve clearly communicated your expectations to them.

Summary

You get the most buy in from others when you lead by example, and you’ll become much more effective as a manager or leader. You have your own expectations of what ideal is, so it’s important to communicate them with your team (Side note: expectations go both ways. Make sure your team’s expectations of an ideal leader are properly communicated to you). One of the best ways you can communicate your expectations through leading by example regularly, and you drive the point home by emulating your definition of ideal.

Extras

If you’re looking for a bit more on how and why to lead by example, consider these links:


Weekly Article Dump

Here’s the collection of articles I’ve shared on social media outlets over the past week:

  • Why Innovation Is So Hard: A few good points on why innovating sometimes feels like it’s a difficult thing to do and what you can do to improve!
  • Present Slides, Distribute Documents: Do your meetings sometimes feel like someone is just reading you a slide show? You can read a slide show yourself, can’t you? Why not distribute the slide show ahead of time?!
  • How to Evaluate Personal Characteristics When Hiring: Being a good fit is incredibly important when hiring someone. How can you improve gauging how good of a fit someone will be with your work culture? This article gives you a few strategies.
  • Look Out! When the Visible Becomes Invisible: Invisible work “clutter” can be holding your efficiency back at work. Check out this article for why ignoring things at work and letting them build up can get dangerous… and of course, how to avoid it 🙂
  • The Single Most Essential Building Block of Success: This article talks discusses how your mindset and perspective on challenges can gear you toward success. Complete with 10 tips for becoming more resilient!
  • Having a Really Lousy Day? Some Ways to Feel Better: We all have bad days. This article has some great practical tips (13 of them!) for you to improve your day. My favourite is number 2: do something nice for someone else. Definitely a great way to make your day better.
  • Are You a Workaholic or an Outlier?: This article discusses what being a workaholic means and the differences between when it may be a good thing versus a bad thing. The real takeaway point is to remember to do what you love.
  • 29 Reasons to Start a Bog Today: Ever considered starting a blog? For me, it kind of happened over night… but I’m betting there are lots of people at least on the fence about it. Why not give it a shot? Check out this article and you might get that little nudge you need to take the plunge!
  • Why I Wake Up Early and 3 Reasons You Should Too: In this article, Julia Boorstin touches on 3 reasons why she’s a morning person. For some people, it’s a matter of playing catch-up with the other side of the world but for others, it’s just a way to become more productive.
  • 5 Ways To Lead No Matter Your Title: Some of the best leaders at a company are home-grown and not brought in from somewhere else just because they were good leaders. In this article, Angie Hicks talks about 5 different ways you can put leadership skills into play even if you don’t have “Leader” in your job title.
  • So You Want To Pick Someone’s Brain? Do It Right: Sometimes I think this kind of stuff is common sense, but I’m definitely being proven wrong on this one! In this article, Linda Coles talks about a handful of things to consider when reaching out to someone to ask them for their opinion on something. Think about it… Why would you do it differently than if you had the opportunity to do it in person?!
  • Be SMARTe: How to Clarify Confusion:  This article focuses on hiring and resumes, but I think the concept applies in the more general sense. Lou Adler puts it well right at the beginning, “if you can’t describe exactly what you want, don’t be surprised if you don’t get it”. Using a simple set of guidelines, you can formulate what you’re looking for in a clear and concise manner that helps reduce assumptions and confusion.
  • To Become An Expert, Do This One Thing: In this article, Whitney Johnson makes a great point: you need to leave your ego at the door if you want to build up your skill set in an area where you’re a beginner. Just because you might be accomplished at some things, you need to get into the beginner mindset.
  • Are You Grounded in Trust?: Stan McChrystal writes about a parallel to trust in your business and team. Trust is incredibly important, especially in small businesses, because it let’s people focus on what they are experts at. In order to keep your team operating efficiently, everyone should feel like they can trust the other team members.
  • How to Focus Innovation: This article identifies the 6 ‘W’s that you need to answer when considering innovation. Gijs van Wulfen describes these steps as the necessary formula for innovation. He then outlines a group of questions that you should ask about your innovation in terms of it’s placement in the market. Certainly a lot of things to consider, but they all seem worthwhile.
  • The Joys Of Screwing Up: Being fearless is neccessary for innovation according to Jeff DeGraff. When we become afraid of taking risks and pushing the boundaries, innovation stagnates. How can you innovate if you’re never willing to take risks?
  • 7 Tips for Surviving Life As a Middle Manager: Nothing I would consider ground breaking here, but Dennis Berman has done an awesome job of summarizing a lot of excellent middle management tips. You may have read about some of these in some of the articles I’ve shared, but it’s certainly a great list to refer to!

Hope you enjoyed! Remember to follow on popular social media outlets to get these updates through the week!

Nick Cosentino – LinkedIn
Nick Cosentino – Twitter
Dev Leader – Facebook
Dev Leader – Google+


  • Subscribe to Blog via Email

    Enter your email address to subscribe to this blog and receive notifications of new posts by email.

  • Nick Cosentino

    Nick Cosentino

    I work as a team lead of software engineering at Magnet Forensics (http://www.magnetforensics.com). I'm into powerlifting, bodybuilding, and blogging about leadership/development topics over at http://www.devleader.ca.

    Verified Services

    View Full Profile →

  • Copyright © 1996-2010 Dev Leader. All rights reserved.
    Jarrah theme by Templates Next | Powered by WordPress