Share your knowledge and create a knowledgebase.


10 Things to Kick-Start Your Blog’s Growth

Aug 8, 2008 Author: Ashish | Filed under: Techniques

blog_growth_tips 10 Things to Kick-Start Your Blog’s GrowthIt can often seem as if our blog’s growth is out of our control. We post regularly and try to write the best content we can, but sometimes this doesn’t seem like enough. Our growth might plateau, or even start going backwards.

Thankfully, there are some things that are in your control. In this post, I want to explore ten actions you can do straight away that will grow your blog and send you traffic. Perform one of these tasks each day, or one a week. You’ll breathe new life into your blog.

1. Give something away. These days, most bloggers don’t want to give something away unless they get something in return (a link, or maybe a review). This seems intuitive: why give away time or resources without any clear benefits?

The truth is counter-intuitive. Give without expecting to receive and you’ll receive anyway. I’m not speaking about this hypothetically. On my own blog, I offered free simplicity reviews and post ideas for anyone who asked without asking for anything in return. I still get links from grateful participants to this day. Giving away something useful for free leaves a lasting impression. There’s no better way to get traffic and recommendations — without even asking for them.

2. Get connections to vote for you on social media. Call in a favor by asking other bloggers and social media users you know to vote up your best content. You’d be surprised how willing people are to give you a leg up if you’d only ask — especially if you do something for them in return, or have done so in the past.

3. Run a competition. The best competitions have one of three qualities: a fantastic prize, an unusual prize, or an interesting format. Other bloggers shouldn’t have to endure a sacrifice to participate. Make the requirement something that will benefit both you and the blogger, while also putting them in the running to win something. If you don’t have funds, make the prize something valuable that costs nothing to you: advertising space on your site, or a service utilizing one of your talents.

4. Write a free report. A ten page report (usually a ‘how to’ on a topic within your niche) might take a few hours to write but is something that can promote your blog in the long-term. If it’s good, people will share it around. They’ll attach it to emails and offer it as a download on their own blogs. Make sure to link back to your own blog in the report and your incoming traffic will grow exponentially as the report spreads.

5. Start a meme. Think of an idea for a blog post or a set of questions. Write that post or answer the questions, then tag ten other bloggers you’d like to participate in the meme. If you make your first article instructive, you’ll encourage everyone who participates in the meme to link back to you for the original instructions. If five of those ten bloggers you’ve tagged participate, and they each tag five others (and so on), your meme has the potential to generate dozens (or hundreds) of links back to your blog.

6. Guest-post on a popular blog. A guest-post on a popular blog can bring dozens to hundreds of targeted hits into your site. Don’t think you could ever write for a popular blog? Think again. They key things to remember when pitching to a popular blogger is: keep it short. Don’t write the post before your pitch has been accepted. Your email should include your post idea and a headline for the piece if possible. Link to your best article to show them the kind of writing you’re capable of.

7. Buy a StumbleUpon campaign. My blog has been on the front page of Digg twice and StumbleUpon is still my biggest single referrer. For $5 your can buy three-hundred hits from social media influencers. If your content is good, you can guarantee a few of those visitors will vote up your post and send you even more traffic. If your content is really good, your $5 campaign could snowball into a viral episode, bringing you thousands of visitors. Here’s some more information on running a StumbleUpon advertising campaign.

8. Comment on five popular blogs. The posts on your niche’s most popular blogs are often viewed by thousands of people. If you’re one of the first commenters, you could have thousands of eyeballs passing over your comment. Leave an insightful or thought-provoking comment and this may motivate others to investigate you and your blog. Today, try to be one of the first to comment on posts from five different popular blogs — particularly those with active and interesting comment threads. You’re bound to get some quality traffic.

9. Send out links to your best content. We all want links from popular blogs. You know what they say: if you want something, you’ve got to ask. Send a brief email to five other bloggers linking to a great post you’ve written that’s relevant to their audience. Don’t ask for a link directly, just say something like: I thought you or your readership might be interested in this. Not every person will link to you, but keep trying and eventually someone will. I’ve received hundreds of visitors over time from links that I went out and asked for. Learning to be audacious is a necessary step for any successful blogger.

10. Join a forum in your niche. Your forum signature allows you to attach a link to your blog with every post that you write. Write ten posts today and you’ve created ten new links to your site. People do click through these links. When I first launched my blog, I built its initial readership almost exclusively through participating in a niche forum. This method really does work.

10 New Ways to Make Money Online

Aug 7, 2008 Author: Ashish | Filed under: Techniques

When you look for new revenue streams, think about what you do well. Whether you’re an expert  in your field, a talented designer, a programmer, or a producer of content, there are ways to leverage your knowledge, skills and abilities, package them and provide them for a fee. And don’t forget that successful web workers are often pursuing more than one income stream at the same time. You may be able to assemble a career out of numerous smaller activities.

Read our latest list of 10 new ways to make money online after the jump.

1. Team up with Yahoo! to offer custom search services.
Yahoo! recently launched their BOSS API, which lets anyone build their own custom search engine or mashup using their search results. But you may have missed this teaser on their blog: “In the coming months, we’ll be launching a monetization platform for BOSS that will enable Yahoo! to expand its ad network and enable BOSS partners to jointly participate in the compelling economics of search.” The details of that platform aren’t out yet, but if you think you can come up with a compelling niche search offering, now’s the time to stake out your place in the market.

Screenshot2. Sell freelance support.
Software and solutions like Copilot and Bomgar make it easier than ever to take over someone’s computer remotely, whether they know anything about how to let you connect or not. If you’re a whiz with solving operating systems and applications issues, why not sell your expertise to others who are less sure of themselves? At a reasonable hourly rate, you can still offer personal service that’s infinitely better than putting up with anonymous bored workers in a telecenter somewhere.

3. Create and maintain social networks.
While companies, organizations and individuals do see the value of marketing through social networks, many of them are afraid that they’ll “waste time” setting them up and maintaining them. Step in as their social network “developer” to determine the right places - MySpace, Facebook, Twitter, et. al. - to have accounts to help them achieve their goals. Then set up their pages and manage them on a regular basis. You can also submit reports that measure your clients’ online buzz and turn that in along with your monthly invoice.

Writers Group - Wed 12pm SLT4. Plan and host virtual events.

If you’re great at organizing, publicizing and managing events, why not offer your services online? Whether a live text chat on a client’s web site or a 3-dimensional avatar-based voice chat in a virtual world such as Second Life, companies and organizations could use your help developing and coordinating these events. You can even approach conferences and offer to create an online version of their event to reach a whole separate audience of people who cannot attend their offline happenings. Throw in some event hosting and moderating a la Oprah, and you’ve got yourself a global gig without having to jump on a plane.

5. Offer remote software demos and training.
So you’ve got a way with software, particularly newfangled Web-based applications. Offer your services as a Web apps trainer and hold online demos - for a fee. You can use GoToMeeting.com, Yugma, and similar services to broadcast your demos from your computer desktop to the computer screens of your audience members. Or approach the developers of these applications, show them you know their product almost better than they do, and offer to provide desktop demos to the media and to their higher dollar business customers.

6. Hold educational teleseminars.
Are you great at web design or online marketing or any other kind of Web work and have wanted to share your skills on a larger scale while getting paid to do it? If you’ve got the expertise, bottle it and sell it widely in the form of a live teleseminar where you charge a fee for participation and then archive it in your online store to generate recurring revenues. You can do simple web-based conference call coordination through Rondee or get fancier with simultaneous text chat and online documents with Calliflower.

7. Write part of Google’s encyclopedia.
Anyone can contribute to Google’s new Knol project, an encylopedic collection of knowledge in the tradition of Wikipedia. But unlike Wikipedia, Knol shows some prospect for paying its writers - because you can automatically hook up Google Ads to a Knol entry, and you’ll get a share of the take. If you’re an authority on some subject of interest, maintaining a Knol page could at least help pay for your internet usage.

8. Flip Web Sites.
Forget trying to think of a brand new hot web site to launch. The New York Times recently reported on people who are making a good living by “flipping” existing sites. The idea: find a niche site with good potential but poor execution, and buy it. Invest your own sweat equity in a site redesign and search engine optimization, then turn around and sell it to someone else who actually wants to run the site. Repeat as often as you can.

Screenshot9. Sell your video footage.
We’ve covered the microstock photography market several times, but did you know that there’s a budding microstock video market too? If you’re a digital video fanatic, turn your high-quality b-roll into bucks using stock imaging sites that also carry video footage like Pond5, iStockPhoto Video and Pixelflow. Set your price, set your terms, and add this new revenue stream to your income.

10. Sell virtual goods.
From fashion to business tools to décor for virtual homes and offices, people who are avid users of virtual worlds are hungry for well-designed virtual goods. Second Life store, Nyte 'N' DayWhile there is a learning curve for each proprietary virtual environment such as There.com, Kaneva, Lively, and Second Life, if there is a commerce component of the world that converts to real dollars, with a keen eye for design and detail and the right building skills, you can generate income from creating products made of bits and bytes. In Second Life, for example, some of the more successful clothing designers are bringing in thousands of dollars (US) a month selling items of clothing at 75 cents to $1.50 a pop. And if you are truly an artist, your virtual goods could sell for a pretty penny.

15 Tools to Help You Develop Faster Web Pages

Jun 24, 2008 Author: Ashish | Filed under: Techniques

Response times, availability, and stability are vital factors to bear in mind when creating and maintaining a web application. If you’re concerned about your web pages’ speed or want to make sure you’re in tip-top shape before starting or launching a project, here’s a few useful, free tools to help you create and sustain high-performance web applications.

I’ve tried to include a wide variety of tools that are easy to use, and have tried to keep them as OS and technology-independent as possible so that everyone can find a tool or two.

1. YSlow for Firebug

YSlow for Firebug - Screenshot

YSlow grades a website’s performance based on the best practices for high performance web sites on the Yahoo! Developer Network. Each rule is given a letter grade (A through F) stating how you rank on certain aspects of front-end performance. It’s a simple tool for finding things you can work on such as reducing the number of HTTP request a web page makes, and compressing external JavaScript and CSS files. A worthwhile read is the Ajax performance analysis post on IBM developerWorks that outlines practical ways of using YSlow in your web applications.

2. Firebug

Firebug - Screen shot

Firebug is an essential browser-based web development tool for debugging, testing, and analyzing web pages. It has a powerful set of utilities to help you understand and dissect what’s going on. One of the many notable features is the Net (network”) tab where you can inspect HTML, CSS, XHR, JS components.

3. Fiddler 2

Fiddler 2 - Screen shot

Fiddler 2 is a browser-based HTTP debugging tool that helps you analyze incoming and outgoing traffic. It’s highly customizable and has countless of reporting and debugging features. Be sure to read the “Fiddler PowerToy - Part 2: HTTP Performance” guide on the MSDN which discusses functional uses of Fiddler including how to improve “first-visit” performance (i.e. unprimed cache), analyzing HTTP response headers, creating custom flags for potential performance problems and more.

4. Cuzillion

Cuzillion - Screen shot

Cuzillion is a cool tool to help you see how page components interact with each other. The goal here is to help you quickly rapidly check, test, and modify web pages before you finalize the structure. It can give you clues on potential trouble-spots or points of improvements. Cuzillion was created by Steve Saunders, the ex-Chief Performance at Yahoo!, a leading engineer for the development of Yahoo’s performance best practices, and creator of YSlow.

5. mon.itor.us

mon.itor.us - Screen shot

monitor.us is a free web-based service that grants you a suite of tools for monitoring performance, availability, and traffic statistics. You can establish your website’s response time and set up alerts for when a service becomes unavailable. You can also set-up weekly, automated benchmarks to see if changes you’ve made impact speed and performance either positively or negatively.

6. IBM Page Detailer

IBM Page Detailer - Screen shot

The IBM Page Detailer is a straightforward tool for letting you visualize web components as they’re being downloaded. It latches onto your browser, so all you have to do is navigate to the desired site with the IBM Page Detailer open. Clicking on a web page component opens a window with the relevant details associated with it. Whenever an event occurs (such as a script being executed), the tool opens a window with information about the processes.

7. Httperf

Httperf is an open-source tool for measuring HTTP server performance running on Linux. It’s an effective tool for benchmarking and creating workload simulations to see if you can handle high-level traffic and still maintain stability. You can also use it to figure out the maximum capacity of your server, gradually increasing the number of requests you make to test its threshold.

8. Pylot

Pylot - Screen shot

Pylot is an open-source performance and scalability testing tool. It uses HTTP load tests so that you can plan, benchmark, analyze and tweak performance. Pylot requires that you have Python installed on the server - but you don’t need to know the language, you use XML to create your testing scenarios.

9. PushToTest TestMaker

PushToTest TestMaker - Screen shot

PushToTest TestMaker is a free, open-source platform for testing scalability and performance of applications. It has an intuitive graphical user interface with visual reporting and analytical tools. It has a Resource Monitor feature to help you see CPU, memory, and network utilization during testing. The reporting features let you generate graphs or export data into a spreadsheet application for record-keeping or further statistics analysis.

10. Wbox HTTP testing tool

Wbox HTTP testing tool - Screen shot

Wbox is a simple, free HTTP testing software released under the GPL (v2). It supports Linux, Windows, and MacOS X systems. It works by making sequential requests at desired intervals for stress-testing. It has an HTTP compression command so that you can analyze data about your server’s file compression. If you’ve just set up a virtual domain, Wbox HTTP testing tool also comes with a command for you to test if everything’s in order before deployment.

11. WebLOAD

WebLOAD - Screen shot

WebLOAD is an open-source, professional grade stress/load testing suite for web applications. WebLOAD allows testers to perform scripts for load testing using JavaScript. It can gather live data for monitoring, recording, and analysis purposes, using client-side data to analyze performance. It’s not just a performance tool – it comes with authoring and debugging features built in.

12. DBMonster

DBMonster - Code Screen shot

DBMonster is an open-source application to help you tune database structures and table indexes, as well as conduct tests to determine performance under high database load. It’ll help you see how well your database/s will scale by using automated generation of test data. It supports many databases such as MySQL, PostgreSQL, Oracle, MSSQL and (probably) any database that supports the JDBC driver.

13. OctaGate SiteTimer

OctaGate SiteTimer - Screen shot

The OctaGate SiteTimer is a simple utility for determining the time it takes to download everything on a web page. It gives you a visualization of the duration of each state during the download process (initial request, connection, start of download, and end of download).

14. Web Page Analyzer

Web Page Analyzer - Screen shot

The Web Page Analyzer is an extremely simple, web-based test to help you gain information on web page performance. It gives you data about the total number of HTTP requests, total page weight, your objects’ sizes, and more. It tries to estimate the download time of your web page on different internet connections and it also enumerates each page object for you. At the end, it provides you with an analysis and recommendation of the web page tested – use your own judgment in interpreting the information.

15. Site-Perf.com

Site-Perf.com - Screen shot

Site-Perf.com is a free web-based service that gives you information about your site’s loading speed. With Site-Perf.com’s tool, you get real-time capturing of data. It can help you spot bottlenecks, find page errors, gather server data, and more - all without having to install an application or register for an account.

More Tools and Related Resources

If you have a favorite web performance tool that wasn’t on the list, share it in the comments. Would also like to hear your experiences, tips, suggestions, and resources you use.

Courtesy: sixrevisions

Improving Code Readability With CSS Styleguides

May 5, 2008 Author: Ashish | Filed under: HTML, Techniques

Once your latest project is finished, you are very likely to forget the structure of the project’s layout, with all its numerous classes, color schemes and type setting. To understand your code years after you’ve written it you need to make use of sensible code structuring. The latter can dramatically reduce complexity, improve code management and consequently simplify maintainability. However, how can you achieve sensible structuring? Well, there are a number of options. For instance, you can make use of comments — after all, there is always some area for useful hints, notes and, well, comments you can use afterwards, after the project has been deployed.

Indeed, developers came up with quite creative ways to use comments and text formatting to improve the maintainability of CSS-code. Such creative ways are usually combined into CSS styleguides — pieces of CSS-code which are supposed to provide developers with useful insights into the structure of the code and background information related to it.

This article presents 5 coding techniques which can dramatically improve management and simplify maintainability of your code. You can apply them to CSS, but also to any other stylesheet or programming language you are using.

1. Divide and conquer your code

First consider the structure of your layout and identify the most important modules in your CSS-code. In most cases it’s useful to choose the order of CSS-selectors according to the order of divisors (div’s) and classes in your layout. Before starting coding, group common elements in separate sections and title each group. For instance, you can select Global Styles (body, paragraphs, lists, etc), Layout, Headings, Text Styles, Navigation, Forms, Comments and Extras.

To clearly separate fragments of code, select appropriate flags or striking comments (the more *-symbols you have in your code, the more striking a heading is). In the stylesheet they will serve as a heading for each group. Before applying a preferred flag to your code, make sure you can immediately recognize single blocks when scanning through the code.

However, this approach might not be enough for large projects where a single module is too big. If it is the case, you might need to divide your code in multiple files to maintain overview of single groups of code fragments. In such situations master stylesheet is used to import groups. Using master-stylesheet you generate some unnecessary server requests, but the approach produces a clean and elegant code which is easy to reuse, easy to understand and also easy to maintain. And you also need to include only the master-file in your documents.

/*——————————————————————
[Master Stylesheet]

Project:    Smashing Magazine
Version:    1.1
Last change:    05/02/08 [fixed Float bug, vf]
Assigned to:    Vitaly Friedman (vf), Sven Lennartz (sl)
Primary use:    Magazine
——————————————————————-*/
@import "reset.css";
@import "layout.css";
@import "colors.css";
@import "typography.css";
@import "flash.css";
/* @import "debugging.css"; */

For large projects or large development team it is also useful to have a brief update log and some additional information about the project — e.g. you can put the information about who is this CSS-file assigned to and what is its primary use (e.g. Smashing Magazine, Smashing Jobs etc.).

Additionally, you can include a debugging CSS-code to take care of diagnostic styling in case you run in some problems. Consider using Eric Meyer’s Diagnostic Styling as a debugging stylesheet to test your CSS-code and fix problems.

2. Define a table of contents

To keep an overview of the structure of your code, you might want to consider defining a table of contents in the beginning of your CSS-files. One possibility of integrating a table of contents is to display a tree overview of your layout with IDs and classes used in each branch of the tree. You may want to use some keywords such as header-section or content-group to be able to jump to specific code immediately.

You may also select some important elements you are likely to change frequently — after the project is released. These classes and IDs may also appear in your table of contents, so once you’ll need to find them you’ll find them immediately — without scanning your whole code or remembering what class or ID you once used.

/*——————————————————————
[Layout]

* body
    + Header / #header
    + Content / #content
        - Left column / #leftcolumn
        - Right column / #rightcolumn
        - Sidebar / #sidebar
            - RSS / #rss
            - Search / #search
            - Boxes / .box
            - Sideblog / #sideblog
    + Footer / #footer

Navigation      #navbar
Advertisements      .ads
Content header      h2
——————————————————————-*/

…or like this:

/*——————————————————————
[Table of contents]

1. Body
    2. Header / #header
        2.1. Navigation / #navbar
    3. Content / #content
        3.1. Left column / #leftcolumn
        3.2. Right column / #rightcolumn
        3.3. Sidebar / #sidebar
            3.3.1. RSS / #rss
            3.3.2. Search / #search
            3.3.3. Boxes / .box
            3.3.4. Sideblog / #sideblog
            3.3.5. Advertisements / .ads
    4. Footer / #footer
——————————————————————-*/

Another approach is to use simple enumeration without indentation. In the exampe below, once you need to jump to the RSS-section you simply use a search tool to find 8. RSS in your code. That’s easy, quick and effective.

/*——————————————————————
[Table of contents]

1. Body
2. Header / #header
3. Navigation / #navbar
4. Content / #content
5. Left column / #leftcolumn
6. Right column / #rightcolumn
7. Sidebar / #sidebar
8. RSS / #rss
9. Search / #search
10. Boxes / .box
11. Sideblog / #sideblog
12. Advertisements / .ads
13. Footer / #footer
——————————————————————-*/
<!– some CSS-code –>

/*——————————————————————
[8. RSS / #rss]
*/
#rss { … }
#rss img { … }

Defining a table of contents you make it particularly easier for other people to read and understand your code. For large projects you may also print it out and have it in front of you when reading the code. When working in team, this advantage shouldn’t be underestimated. It can save a lot of time — for you and your colleagues.

3. Define your colors and typography

Since we don’t have CSS constants yet, we need to figure out some way to get a quick reference of “variables” we are using. In web development colors and typography can often be considered as “constants” — fixed values that are used throughout the code multiple times.

As Rachel Andrew states, “one way to get round the lack of constants in CSS is to create some definitions at the top of your CSS file in comments, to define constants. A common use for this is to create a color glossary. This means that you have a quick reference to the colors used in the site to avoid using alternates by mistake and, if you need to change the colors, you have a quick list to go down and do a search and replace.”

/*——————————————————————
# [Color codes]

# Dark grey (text): #333333
# Dark Blue (headings, links) #000066
# Mid Blue (header) #333399
# Light blue (top navigation) #CCCCFF
# Mid grey: #666666
# */

Alternatively, you can also describe color codes used in your layout. For a given color, you can display sections of your site which are using this color. Or vice versa — for a given design element you can describe the colors which are used there.

/*——————————————————————
[Color codes]

Background:    #ffffff (white)
Content:    #1e1e1e (light black)
Header h1:    #9caa3b (green)
Header h2:    #ee4117 (red)
Footer:        #b5cede (dark black)

a (standard):    #0040b6 (dark blue)
a (visited):    #5999de (light blue)
a (active):    #cc0000 (pink)
——————————————————————-*/

The same holds for typography. You can also add some important notes to understand the “system” behind your definitions.

/*——————————————————————
[Typography]

Body copy:        1.2em/1.6em Verdana, Helvetica, Arial, Geneva, sans-serif;
Headers:        2.7em/1.3em Helvetica, Arial, "Lucida Sans Unicode", Verdana, sans-serif;
Input, textarea:    1.1em Helvetica, Verdana, Geneva, Arial, sans-serif;
Sidebar heading:    1.5em Helvetica, Trebuchet MS, Arial, sans-serif;

Notes:    decreasing heading by 0.4em with every subsequent heading level
——————————————————————-*/

4. Order CSS properties

When writing the code often it’s useful to apply some special formatting to order CSS properties — to make the code more readable, more structured and therefore more intuitive. There is a variety of grouping schemes developers use in their projects. Some developers tend to put colors and fonts first; other developers prefer to put “more important” assignments such as those related to positioning and floats first. Similarly, elements are also often sorted according to the topology of the site and the structure of the layout. This approach can be applied to CSS selectors as well:

    body,
    h1, h2, h3,
    p, ul, li,
    form {
        border: 0;
        margin: 0;
        padding: 0;
    }

Some developers use a more interesting approach — they group properties in an alphabetical order. Here it’s important to mention that alphabetizing CSS properties may lead to some problems in some browsers. You may need to make sure that no changes are produced as a result of your ordering manipulations.

body {
    background: #fdfdfd;
    color: #333;
    font-size: 1em;
    line-height: 1.4;
    margin: 0;
    padding: 0;
}

Whatever grouping format you are using, make sure you clearly define the format and the objective you want to achieve. Your colleagues will thank you for your efforts. And you’ll thank them for sticking to your format.

5. Indentation is your friend!

For better overview of your code you might consider using one-liners for brief fragments of code. This style might produce messy results if you define more than 3 attributes for a given selector. However, used moderately, you can highlight dependencies between all elements of the same class. This technique will dramatically increase code readability when you have to find some specific element in your stylesheet.

#main-column { display: inline; float: left; width: 30em; }
        #main-column h1 { font-family: Georgia, "Times New Roman", Times, serif; margin-bottom: 20px; }
        #main-column p { color: #333; }

You remember exactly what you did and can jump back in there and fix it. But what if you made a lot of changes that day, or you just simply can’t remember? Chris Coyier suggests an interesting solution for highlighting recent changes in your CSS-code. Simply indenting new or changed lines in your CSS you can make recent changes in your code more visible. You can as well use some comments keywords (e.g. @new) — you’ll be able to jump to the occurrences of the keyword and undo changes once you’ve found some problems.

#sidebar ul li a {
     display: block;
     background-color: #ccc;
          border-bottom: 1px solid #999; /* @new */
     margin: 3px 0 3px 0;
          padding: 3px; /* @new */
}

Conclusion

CSS styleguides are helpful if and only if they are used properly. Keep in mind that you should remove every styleguide which doesn’t effectively help you to get a better understanding of the code or achieve a well-structured code. Avoid too many styleguides for too many elements bundled in too many groups. Your goal is to achieve a readable and maintainable code. Stick to it and you’ll save yourself a lot of trouble.

Being a Development Team Leader?

May 5, 2008 Author: Ashish | Filed under: Techniques

I’d like to become a Development Team Leader

Hopefully most will have actually considered the change of role and be looking for new challenges and ways to contribute more to their chosen profession. However, for some this is an automatic response to a question that is particularly difficult to answer in an industry with no clear career path. For others it’s simply a way to move up the pay scale.

Before you start talking to your manager or applying for your next job it’s worth considering what you’re getting yourself into. Depending on where you work there will be different definitions of a Development Team Leader (DTL). To put this post in perspective this is my interpretation,

A Development Team Leader is someone who owns the technical delivery of a solution. They need to understand the business drivers behind the project and be able to lead a team of Developers to realise these drivers in working software.They are (IMHO) the central player in a project team and need to maintain excellent communication with all members of the team from Client to Developers and everyone in between.

I tend to distinguish between what I call a Senior Developer (SD) and a DTL. A SD is someone who still does the tasks of a developer but does them really well and has lots of experience. They don’t tend to have the added responsibilities of a DTL. DTL’s often (but not necessarily) have a SD background.

Assuming you’re a developer this is what I reckon your job entails.

Let’s face it the life of your average developer is focused around cutting code. Sure you might have daily Scrums or other team meetings to attend but your main focus is writing software. And you love it!

When you become a DTL you work balance is up for a bit of a change.

Other than the coding slice don’t place to much attention on the relative weights of the pie slices - suffice to say you won’t be zoning out for 8 hours a day to your favourite tunes - you’re the one that gets interrupted, you’re the one putting out the fires and making sure the wheels are oiled. Your head is on the line if the solution doesn’t meet expectations or is delivered late. You have some responsibilities and influence now.

Coding - don’t worry, you still get to practice your craft but just not as much as you used to. There are now lots of other things that you need to be involved in too.
Documentation - even with the increasing popularity of Agile methodologies and a move away from excessive documentation there are still times when (technical) documentation is necessary - and guess what? You will be first in line to do it.
Meetings - if you thought you were in lots of meetings as a developer then you ain’t seen nothing yet. Depending on the size of the project you are involved in you will be the main participant in a wide variety of meetings. Whether it’s a meeting with the client, the delivery team, the PM, you are the one with the most knowledge of both the requirements and the implementation of the solution.
Communications - beyond official meetings you will also be heavily involved with communicating to others via emails, issue tracking software, the phone and face to face catch ups on progress. It’s a bit of a cliche but good communication skills really are the key to succeeding in many professions - and for any leadership role it’s essential.
Delegation - because of your other duties it’s an essential part of your role to be able to delegate work to others. Someone once told me that the job of the DTL is to make themselves redundant - an apparent contradiction to your pivotal role on the project but one that sums up the responsibility you have to ensure the project moves forward even when you can’t personally be there to solve an issue. The more you delegate responsibility to others in your team the more involved and productive they become. Don’t try and do everything yourself.
Mentoring - part of reason for delegating tasks to others is to provide them with opportunities for personal growth and development. Mentoring carries this idea further and is a key part of your role. No-one is an island and you must be prepared to share your knowledge with others. As an aside you should also be prepared to learn from your team - DTL’s who think they know it all are usually wrong and always disruptive to the morale and effectiveness of the team.

How to Become a Development Team Leader?

As Development Manager to a team of incredibly motivated and talented individuals I often have conversations that begin,

    Hey Tokes, I really want to move my career to the next step and want to know what I can do to become a Development Team Leader.

My response,

    Act like one!

That’s right, it’s that simple. Wherever possible take it upon yourself to assume some of the tasks that would normally be expected of a DTL. The more DTL skills you display the more likely others will see you in that light and give you the opportunity to perform the role for real. Whatever you do, don’t sit quietly behind your desk with the headphones on and expect someone to recognise your leadership potential and tap you on the shoulder - it won’t happen. Similarly don’t assume that because you’re a technical genius that becoming a DTL is the natural next step in your career or something you deserve in recognition of your talents. The skills of a DTL go beyond the technical and require you to have other skills like great communication, the ability to delegate, confidence, being level headed, acting in a professionalism manner…

So what can you do I hear you ask? You’re only a developer, right? Wrong, the act of developing is only part of what you have to offer.

Let it Be Known - it seems obvious but you should let your manager/PM/peers or anyone else who will listen that you want to become a DTL. Don’t be a nag about it but just plant the seed in people’s minds.

Understand the Big Picture - one of the big differences between a good developer and a great one is their ability (or interest) to understand the big picture. They understand the business goals and pain points the system is addressing. They understand the entire solution, not just their part of it. They understand how the code they are writing benefits the client and the solution as a whole. They understand the client and what is important to them. They understand that the code is a means to an end and that project success will be primarily measured by client satisfaction.

Ask Questions - I love working with people who ask questions. It shows you are attempting to understand things thoroughly. It shows you’re not afraid to question why something is being done in a certain way. It show’s, that as a DTL, I’m not the only one thinking things through and that there’s more chance the team is on the right track. Understanding the Big Picture is crucial to being able to ask the right questions.

Don’t Wait to Be Asked - while you should always be on top of the tasks delegated to you, don’t stop there. Be hungry like a wolf, hunting out ways in which you can add value, help others and identify issues. Do not wait for your own DTL to ask you to do something, try and always be one step ahead without, of course, second guessing their authority.

Be Approachable - DTL’s are often the go-to guys (or gals) but they’re also pulled away from the team to attend meetings etc. Be approachable (i.e. take off the headphones now and then!) and aim to be the one people seek out when the DTL’s away - this is a great sign that you have the respect of the team. If you’re doing the things above this will be a natural consequence and shouldn’t require you to do anything specific.

Stay Calm - what was it that Mr Kipling said? "If you can keep your head when all about you Are losing theirs… you’ll be a DTL my son!". Software development can be a stressful business. Look around at DTL’s you respect - guaranteed they will be the level headed ones, the ones that don’t let the pressure get the better of them (or at least are good at hiding it!)

Recent Comments