My natural first reaction being, I am not that awesome, I just like to produce work to the best of my ability in a shorter time than allocated.

Some good habits I learnt from my seniors, as the junior programmer, have stayed with me and continue to be a part of my everyday work ethic.

Joining the web industry as a junior programmer fresh from university, I was not ever anticipating being a senior team leader, but a welcomed role I was willing to accept and be an example for my team. Some good habits I learnt from my seniors, as the junior programmer, have stayed with me and continue to be a part of my everyday work ethic.

Code alignment

It was drilled into me at an early stage that code alignment is key to running an efficient team of coders. Though I studied PHP at university in which opening and closing brackets is available, I actually started my first job in ASP which used words and not brackets.

Picture below the same code but one poorly, the other nicely formatted.

Poor:

if($tired){
                echo "drink coffee";
                
                          while($coffee_drinking){
        echo "eat chocolate";
}
                }else{ echo "KEEP ON WORKING";
				
        }

Better:

if($tired){
    echo "drink coffee";
            
    while($coffee_drinking){
        echo "eat chocolate";
    }
}else{
    echo "KEEP ON WORKING";
}

While each organisations' coding structure and style will be slightly different, you need to have coding alignment common throughout. If it works but visually looks like vomit, that poor person who needs to look at and troubleshoot your code later will spend way more time than they should and probably give you the angry face.

Understand what the requirements are for your project before even touching code

I've seen way too many times where projects go over time/budget that could have been easily saved with complete understanding and communication. In our projects, the project manager is the face for the client in communicating their requirements. So it is important that you get the client's vision before building but also ask questions and potentially suggest better ways of producing the work... before starting.

Test your own work

Pretty self-explanatory right? I've worked with some people who don't adequately test their work. Most test for the perfect case situations, but forget to test the outer cases. In relation to development an example would be where users deliberately (or not deliberately) place data into form fields that break your intended code; whereas in design/build, an example might be where a dynamically controlled content area by your client can break the layout if there is too much content for that section.

By testing your own work, you can reduce the amount of feedback cycles and lower the risk of making your business look bad for your clients.

In a team environment when you are working towards common goals it is important to communicate effectively. Sharing your newly found knowledge can not only help the team, but also improve your worth in the business.

Always think of more efficient ways to do things

It is important in this industry to be aware of latest technologies but also to think that you might be able to improve your day to day work. Some team leaders might not always want you to just go ahead and change the process, but I'm sure most will like to hear that you have put thought into saving time, especially for your team.

Share your newly found knowledge

In a team environment when you are working towards common goals it is important to communicate effectively. Sharing your newly found knowledge can not only help the team, but also improve your worth in the business. Some knowledge might even be worth just discussing with your team to see if others have come across the same product or situation.

There is no point hiding what you have done, be excited about your work, let others be excited with you. The team at Bam Creative regularly gather around a team member's computer to oooo and ahhhhh whilst they show off their work.

Think of the next person

When handing over your work, give the team members involved your thoughts and run down of your work. Communication is such a big key to making projects run smoothly; I've seen some intelligent/talented team members before but because they don't embrace communication and keeping the team in the loop, they've just not fitted in with the team. This title also heavily includes the code alignment/standards; consistency of work also helps your team work more efficiently.

Chat with your team about their work

Take the time to see how other team members are doing with their projects. Are they struggling with certain tasks? Have they found better ways to do things? Are they struggling to find documentation? Or do they simply need to chat about a situation they've been stuck on for longer than expected? I've had many occasions where talking out your issue to someone else just triggers the solution without them even saying a word.

In Summary

My day to day work as a senior web developer has incorporated the above things as second nature though I know there are times, especially when busy or under the pump, that these can be harder to accomplish. Keep at it, but don't lose focus on efficient communication and thinking about your team.