Blog

  • Implementing Coding Standards in Your Workplace?

    Every time someone blogs about the way they code on a blog, the comments always have one person who writes about how their company/department/group has the described technique as a coding standard in their company. From using a new line for squiggly brackets, to no code on the timeline in Flash files, all the way to using a specific coding framework (Rails, Mach-2, Cairngorm, etc.).

    What I want to know is, how does one “implement” said standards? How does one enforce them?

    Reason I ask is that in my new job, I’m taking the ball with formalizing a variety of projects and code bases to fit a road map. I work with a team, and that team is on a variety of projects, each of which has their code base. My concern for the client side Flash and Flex portions is that there is currently no enforced standards. We can all code on our own way because currently we have very little involvement with each other’s endeavors. The expectations are that you code well, hit deadlines, and keep management informed.

    That’s all well and good for the short-term, but after seeing the business ramifications of a few code bases not coded with the future in mind, I have grave concerns. Business ramifications being an insane overhead cost for feature requests, no risk-free way to test the already written software, and more risk associated with particular individuals being the only ones who know how certain systems work. I’m worried that I’m not doing everything in my power to ensure that if I get hit by a bus, those taking over the code bases after me are well equipped, and can be successful in doing so. Conversely, I dread maintaining some of the other code bases that aren’t using the standards I’m using.

    I’ve got what I feel are obvious things:

    • using best coding practices (those that aren’t too subjective)
    • following OOP encapsulation, and documenting where I break it, and why
    • using Subversion source control, checking in only what you need to successfully compile and run the app
    • What I check into Subversion actually compiles
    • communicating my intent to other developers and getting their feedback
    • Using widely known frameworks (1 for Flash, 1 for Flex)

    What I haven’t done, but feel might be good to do:

    • Provide a document beyond code-commenting per project on how to setup and compile
    • Document my framework modifications that go beyond implementation details
    • Have more debates on the pro’s & con’s of unit testing with a particular devote developer from another team
    • Voice my concerns to management to ensure I’m not wasting my time.

    That last one may seem weird, but it’s not. For example, a lot of service work is created once, and never maintained. In consulting, some stuff is coded from scratch for each client to ensure there are no legal licensing worries after a project is done. Sometimes, it’s just cheaper to re-write, whether in house or out sourced to another company/contractor. For product work, some customers are charged out the yang for things beyond the norm.

    I don’t think I’m wasting my time, though. In my short career, I’ve seen first hand how bad things can be when the original developers do not plan for the future, nor care about it. I want to create a better future, whether I’m in it or not, and not just for the engineers after me, but also because I want research & development funding. If I reduce overhead costs, while ensuring customer satisfaction is at or above where it was before I got involved, I can spend more time coding new products, improving existing ones based on what customers want, and/or creating what the sales’ team sells.

    To do that, I have to ensure the code is stable, can be configured easily, and is insulated against change. This doesn’t just apply to me, though, it applies to the entire team I work with, as well as new employees, and this is where my vision breaks down. The only way I can think to do this is to first become in charge of my area; second, mandate standards the team agrees on; and third, make people fix the things that don’t follow standards.

    Is that how you do this? Do I really need management’s buy in or is this something developers can mutually agree on? One of mentor’s claims I shouldn’t even waste an ounce of my time on my team members, and instead should go straight to management to make some coding standards company law… I’m thinking I agree with him.

    Do you have coding standards at your company/workplace/department? Who created them, how did you implement them, and most importantly, how do you enforce them?

  • Website Updates

    I spent most of today fixing broken entries, broken links, and re-uploading files that were missing. I’ve also created some quick sections on the right side of my blog to show the most popular entries, recent comments, and the tools & tutorials people are constantly asking for via email. Finally, some people have reported that the old feeds never propagated the new feed URL’s in their feed readers, so I manually updated those as well.

    As always, if something is broke, let me know. If anyone knows of a “Website 404 checker”, lemme know so I can take the initiative for any remaining problems. Thanks for your patience!

  • AIR Bus Tour in Atlanta Tuesday

    Just a reminder, the AIR Bus Tour is in Atlanta at the Fox Theater Tuesday. It’s a free, all day event to learn about AIR, the Adobe Integrated Runtime. I won’t be attending, but I hear there are a ton of people going.

  • 2007 a Different Economy Than 2006, Flex & Flash Still In It

    March this year was high in the need for contractors, consultants, and full-time employee’s in the ways of Flex and Flash. It died June and July. It’s back up again in August. My inbox is full with emails I don’t have time to answer from recruiters and company employers. The majority want Flex. Some want Flash. Some think they want one, but may need the other.

    The differences compared to the late summer of 2006 are as follows.

    First, some of the start ups have money now. Instead of “We’re so awesome, you’ll want to work for equity because you’ll be so cool in 6 months to have even been associated with us” it’s now, “We’re still cool, and now we can pay you a salary, and company benefits if that’s your thing.”

    Second, the recruiters are finally giving in to referral bonuses. This apparently was usually in the realm of bigger companies, placing management type positions, etc. That, or you just had to ask to imply it, and thus get it. I’m somewhat selective on who I send out my contractor list to. If I get 5 emails from various recruiters for the exact same job opportunity, typically the “first in, best English” email gets the list. If the recruiter is really cool, and like… actually cares, I’ll even give my spiel on those contractors I know stuff about. I’ve even seen the same particular jobs pop-up for the past 8 months. While this could be for a number of reasons (talent shortage, toxic client, etc.), the bottom line is that the recruiters are using leverage in the form of referral bonuses to draw out more contacts from people since there aren’t many like me who throw around a pre-sorted list with optional commentary.

    Third, the work is still unpredictable. I was hoping for some common themes 5 years into this, but apparently not. Who am I kidding, I love it. While it is challenging to summarize the the type of work since some of the recruiters are not in this country, do not accept incoming phone calls, or simply don’t know enough about the position they are placing candidates for, I have a pretty good idea. That said, the work in the Flash realm is pretty predictable:
    – Custom/branded video players. People want something that accentuates their entertainment budget they’ve already spent millions on. Having a YouTube or Brightcove branded player detracts from that.
    – Widgets

    The interesting thing about widgets is that it’s currently about half and half with Flex. Some of the widgets are design driven; those use Flash. The others are multi-purpose, used inside existing websites or on other platforms; those use Flex. Really random.

    The Flex stuff is impossible to categorize. While debates still rage about when to use what technology, when, and where, a lot of companies already know, and are hiring talent for those endeavors. For those that don’t, they hire competent Flash Developers, and they then morph into full-time Flex Developers, usually by accident.

    Fourth, remote work is offered without having to ask. Y-gen‘s like me who are all about living the Digital Bedouin work style lifestyle, this is a must. It’s pretty easy to end conversations with recruiters over the phone/email:

    “Do they support remote work / telecommuting?”

    “No, they do not.”

    “Not interested. Thanks! Bye.” :: click ::

    Now, I’m getting emails, more so from employers directly, offering remote work for projects if it’s needed. Not encouraged, but accepted. Awesome.

    Just because the Flex momentum has died down now that 2 has been out awhile, everyone is enamored with Flex 3 beta & AIR, and Flash CS3 has allowed the Flash Developers to start using AS3 the employment scene in this industry is still strong. Talent is still in short supply. Existing programmers are still picking up and running with Flex very easily. Sometimes (not all unfortunately) this results in them needing help on the design front, usually resulting in trying to find Flash Developers or Flex peeps with a Flash / Design background.

    If you have a job, it sucks, and you know how to code in Flash or Flex, it’s not too late to jet for greener pastures with opportunity. If you are not on my contractor list, and want to be, lemme know what type of work you like and send me an email. I send this list to employers and recruiters who are looking for Flash / Flex talent.