Always Get Better

Posts Tagged ‘Employment’

That’s Not My Job

Friday, March 13th, 2015

Most companies seem to have a group of people who gravitate to either front-end or back-end development. I’ve been struggling to wrap my head around this because it doesn’t seem like a useful dichotomy.

It’s a fast-moving field, do you really want to carve a niche as a Unity programmer? An ActionScript expert? A Sharepoint developer? If you specialize to that degree, what happen

s when your technology of choice moves on?

How many of these have you come across:

“Front-end” developers who don’t understand the HTTP stack.

Companies that don’t have centralized source control.

“Back-end” developers who believe front-end code should be unit and performance tested just like server code – who don’t understand why squeezing maximum performance for one user on one machine would be as challenging as constructing a web app that served thousands of users at the same time.

Web designers who don’t know HTML, CSS and jQuery.

Anyone who takes a laissez-faire approach to security.

Project groups that don’t use Continuous Integration.

Understand More

Everyone has an area of interest where they excel and you should definitely pursue yours. Never forget that yours is a piece of the whole, and the more you understand of the whole the better you will be able to create value with your work.

If Photoshop is your bread and butter, learn how programmers slice your designs into HTML. Understand the technical limitations and get inspired by what the web browser can do for you.

If you’ve been slinging awesome responsive webpages, use your JavaScript skills to learn Node.js and understand where that server data is coming from and how it is stored. Expand your ability to write front-ends that scale as beautifully as they present.

If you are more comfortable in the bowels of a Linux server, download Cocos2d-x and experience the thrill your front-end counterparts get when their math turns into gorgeous sprites on-screen.

Everybody’s Talking

Every time you learn something new you open up a world of people you can network with and understand at some level.

Whenever someone asks how to get into the field, what do you answer? “Just do it!”

Rely on Continuous Integration

Friday, April 22nd, 2011

If your testing process involves copying files over to a development environment and hoping you have the most up-to-date version of everything, stop now. There is a better way, and it is continuous integration.

CI works by constantly and automatically testing and publishing everyone’s code into a staging environment. Any missing files or major problems are caught immediately so the team doesn’t run into major conflicts at the end of the development cycle. Although continuous integration does not eliminate code bugs, it improves the software quality by allowing developers to identify and fix problems immediately, resulting in a final product with much fewer defects.

Although there are a lot of different parts to a successful CI process, it is possible to start up slowly and add to the regime as your team becomes more comfortable with their improved success rates.

1. Establish a centralized source code repository
A solid source code manager (SCM) is the backbone of a professional development setup. There are so many tools available for every possible organization, both paid and free. I like git, but Subversion is used in a lot of environments. The key thing to look for is something that can track and rollback code changes over time and is shared between everyone working on the project.

2. Automate the build
After a good SCM has become part of development procedure, automate the build What this means, is every time someone commits to the SCM, have a tool like buildbot pull the fills and deploy them to a testing environment. From this stage on disallow anyone from making changes directly to the testing environment.

3. Automate Testing
Next add unit testing. When the build agent runs the unit tests, it should prevent the source code from going into the testing environment if any error conditions exist in the code. This will let the team make more daring changes to the source code without having to worry about time-consuming reversion testing.

4. Automate Deployment
At this point we’re already have an automated way of deploying our code to a testing area – take it a step further and automate your deployment process. This will let you get your work into the hands of your customers faster and involve them in the planning process earlier – all resulting in an improved product and higher likelihood of staying on-time and on-budget.

Database Migrations

Wednesday, April 20th, 2011

Maintaining database schemas across development environments (especially in teams) and in production can be a real nightmare. Fortunately there are a number of solutions which make database management easier.

Migrations
This can be done manually or automatically. As database changes are made by developers, scripts are generated which can be run against a master database to bring it in line with the developer’s version. The most basic way to accomplish this is by writing a script manually, but frameworks like Django and Rails have built-in migration tools which manage this process. Rails in particular allows developers to move back and forth between snapshots of database schemas.

Evolutions
Evolutionary systems detect database schema changes against program code definitions. As of April 2011, Play Framework supports Evolutions.

Schema Versions
Microsoft SQL Server supports schema versions; wherein the underlying data remains the same, but multiple versions of the database schema rest on top and can be accessed simultaneously. This keeps older versions of the application or supporting clients working with the existing data set.

Keep Tracking…
Managing database changes can be a challenge for organizations of any size. The correct tool depends on a wide range of factors including your project size, number of team members, release schedule.

What kind of tools and processes do you use to manage database changes?

How to Win at Work

Sunday, April 17th, 2011

It isn’t really hard to do well in a job; you just have to apply yourself and put the work first. Just like during the interview, your boss or employer’s motivation is not to give you a hard time or to make your life difficult; all they really want is to get the work done and make money.

A lot of employees seem to approach their job the same way they approached high school: as an institution with fixed rules and authority figures. In this mindset, the best way to succeed is by doing what the teacher (boss) dictates to the minimum acceptable level. Over time, it is possible to rise to the top on the merits of “years of good service”.

Let’s be honest with ourselves: there is surely a more fulfilling way to spend the majority of our day.

Fail Fast
If we look at the best, most successful entrepreneurs, we’ll find a list of failed companies leading up to their home run enterprise. Good entrepreneurs know that there is no secret to success – it is necessary to keep trying and learning from failures until we finally reach our goals. The best thing we can learn is to fail fast so we can move on to success faster.

This flies in the face of the ordinary way of thinking which is to avoid failure. Failure hurts, but if we can learn to accept it, we can open the way to more resounding success.

Do It On Your Own Time
Your boss does not care about your personal growth. As a programmer, the company is not obligated to teach you the newest programming technology. The company is interested in turning a profit, and in order to afford to pay an employee, they need to earn several times the cost of that employee in order to maintain profitability.

So how do you get new skills and remain relevant in a changing work environment? You need to study and learn, especially during your free time. Not sure what you should be studying? Read job boards – you will get a feeling for what is trending and what skills are in demand. You don’t have to be job seeking, but having a polished resume and portfolio will keep your mind sharp and improve the quality of work you already deliver.

Make the Boss Look Good
While you’re busy learning all your new languages and technologies, the boss is responsible for making sure work gets done and that profits are earned for their boss. So what’s the best way to get bumped up in line for that next promotion? Make your boss look good.

If you are pulling your weight plus more, your boss will look more effective, which will raise everybody’s boat. The best way to get noticed is by being responsible for everyone’s success. But wait – didn’t we say to embrace failure? By failing early and fast, we set ourselves up for our greatest successes. Don’t settle for status quo – always get better.

How to Blog for a Living

Thursday, April 14th, 2011

The title is misleading. Although I know a small number of people are making enough money from their blogs to generate a living income, the truth is the majority of people who try to blog for profit will fail to produce substantial revenue. That doesn’t mean the blog won’t be a critical part of their money-making strategy, it just means that a bigger strategy is needed; one in which blogging is just part of the equation.

Direct Income
It is possible to make direct income from your blog, of course. The two most common models of this are ad-supported (Google Adsense is common, but higher-quality and paying ad partners are available to larger blogs), and pay-for-use where your reader pays to access premium content you produce.

The problem with direct income schemes is they take enormous amounts of traffic to work. The average user will not pay or click on ads so in order to get your 1/1000 conversion to pay off you need to have tens of thousands of visitors to your blog. That would have to be a really interesting blog.

Affiliate Income
A more common way for bloggers to make money is by hawking other people’s wares on their site for commission. Depending on the affiliate, the income from this can blow ad-supported revenue out of the water.

Marketing for Other Income
Other writers choose to use their blog as a medium to advertise some other product they have created, or as a vehicle for increasing their professional profile. In these cases the blog may or may not additionally use another model to generate income, but the focus is not on making money.

The Interview Process

Wednesday, April 13th, 2011

Can you be accurately summed up after a short conversation with a complete stranger? Do you think it’s fair that your entire career and work essence is judged within seconds?

Assuming your resume isn’t full of false truth and you get through to an interview, what’s next?

Be yourself. Be genuine. Be authentic.

Like it or not, an interview is a sales meeting. You are selling yourself – your professional skill as well as your personality. The flip side that most job candidates tend to forget, however, is the company interviewing you is just as interested in winning you over as you are winning them.

Be Excited
It’s hard to gauge whether a candidate is truly passionate about their work in a single interview because most people are too nervous to really show their true self. It’s too easy to want to please the interviewer – but you need to remember that the person interviewing you wants you to do well, wants to hire you for the position, and would prefer if you did well so they can stop performing interviews and get back to work.

Be Honest
It’s irritating (not to mention painfully obvious) when the person you’re interviewing with tries to use marketing spin to cover their lack of knowledge on any subject area. If you don’t know the answer to the interviewer’s question, just say so. You won’t lose points because it’s impossible for someone to have an answer to every question – the exception, of course, if when you can’t answer any questions, in which case the job may not be a good fit for you in the first place.

Be Independent
Some people recommend following up with your interviewer a few days after the interview. I’m not necessarily against this practice but I don’t like to do it because usually if the company is excited about hiring you they will contact you fairly soon after the interview. A bad or so-so interview doesn’t mean you definitely won’t get the job, but if you aren’t receiving a call back you are probably better off moving on rather than pushing for a response.

Overwork and the Creative Work Ethic

Wednesday, April 6th, 2011
Street Hassle
Creative Commons License photo credit: 2thin2swim

The massive amount of time required to improve at your craft is one aspect of creative work that is hard for outsiders to understand. When you stake your career and reputation on everything you do, it’s not a job that you work at from 9 to 5, “put in” your hours, then shut off and go home. Your entire existence is invested in succeeding and improving, not just for the paycheque (although, let’s be honest, a great salary is a definite motivator).

For someone who is content to just punch the clock, our world is the domain of work-aholics, people who don’t understand the need for balance in our lives – or the inclusion of family. We see it much differently, of course. To us, making an impact is more important than making a day.

Take a minute to celebrate the entrepreneurial spirit that drives you to keep pushing through and ultimately succeed where others would fail by giving up long ago. There’s only one way to push the limits and that is by continually pushing.

Now take a step back and try to consider the other side of it. The family side outside of work and its struggle against the career that seems to require your entire being. You may have a hard time trying to explain that you need to feed the career to feed your soul, but you need to understand that your family needs to occupy an equally important part of your attention.

Let’s stay focused: Work is important, but if it comes at the cost of ourselves is it worth the effort?