Categories
Tips

Productivity tips busy developers need to know

Software development is a dynamic field. This has always meant that it’s essential for developers to take an active approach, and stay on top of changes. And that, in turn, means that the best developers tend to have reliable ways of keeping themselves productive.

In 2020, this trait — being able to stay productive — is arguably more important than ever. Numerous industries related to software development have taken hits, and many developers are working under different conditions than they’re used to. The ones who are best able to keep up their standard and complete their projects are the ones who are going to handle these challenges most effectively. And that leads us to our main focus: a few productivity tips busy developers need to keep in mind.

Eliminate Distractions

This is a general tip for anyone working from home, like so many developers are doing today. Basically, when you’re working from home, anything from family members and roommates, to television, to your own mobile devices can become a serious distraction, and detract from productivity. Fortunately, avoiding this issue is a simple matter of discipline. Creative Bloq posted tips on avoiding distractions that can help give you an idea of what to focus on. The best ideas they highlighted include getting comfortable physically, closing unnecessary apps, and shutting yourself into a home office all as ways to start walling yourself off from distractions.

Frankly, we see all of these as part of one bigger tip: establishing a home workspace. Particularly these days, with more people working from home, it’s important to have an area where you can be comfortable and able to focus on projects. For starters, we’d recommend an ergonomic desk and chair and a piece of lounge furniture (even a beanbag can be brilliant). Make sure temperature control and lighting are available to you. And if possible, bring in some natural light and plants. All of this will make the workspace cosy and liveable, allowing you to feel your best, focus, and stay put without feeling shut in. With a space like this, you’ll be certain to see a spike in productivity.

Schedule (Including Breaks)

In just about any situation — working from home or otherwise — a clear schedule can boost productivity in a few different ways. A Verizon Connect piece on how to work intelligently explored this idea, suggesting (rightly) that scheduling every task does two things. First, the article said, scheduling gives you a clear picture of what you have to do in a given day; second, it gives you a clear path toward a small sense of accomplishment when you complete outlined tasks. These benefits can absolutely lead to more productivity by software developers.

How you schedule will depend somewhat on your specific work and the projects you have on hand. But we recommend breaking things down (something we’ll speak on more below), and writing your schedule out in a format that allows you to cross off tasks. Even a simple Excel sheet or note-taking app (such as Evernote, OneNote, or even a simple but perfectly functional Apple Notes) can serve as a scheduling book, where you can lay out each day’s activity and cross items off as you fulfill them.

Break Down Projects

As you go about scheduling, and looking for that little sense of accomplishment you get by moving through tasks, it’s also a good idea to break down projects into parts. This might not always be doable, but in development there are often ways to segment jobs into different stages. This can first and foremost make a job seem less formidable, and make you more willing to dive in and start doing the work. But it also leads to more of that sense that you’re checking things off your list and progressing successfully through a day’s work.

These benefits are in fact what many developers get out of tools like Asana and Jira, which exist in part to help organize projects and segment tasks in an orderly fashion. While it’s easy to think of “project management” as something meant for entire teams, busy developers make excellent use out of the idea and the tools that help to make it easier.   

Automate Where You Can

“Automate stuff” was arguably the most interesting idea within Developer Circles Lagos’s developer productivity ideas posted on Medium. While that same post had some other interesting points, what showed through is the notion that people working in software development tend to have some idea of how to do a little bit of automation — say, by writing scripts that accomplish certain tasks on their own. And this sort of effort can help to simplify a job in a way that significantly improves productivity.

Automation may not help with every project, and naturally, some developers will be better able to take advantage of this idea than others. But generally, automating where you can is a sound strategy. Even using your development skills to automate a sort of record-keeping that logs your hour-to-hour activity can be extraordinarily helpful. This example would afford you a better picture of your own working habits, and enable you to adjust accordingly.

Additionally, it’s worth noting that you may not even have to do this sort of automation on your own, given the ready-made tools that exist within modern work programs. As an example, consider Slack’s “Standup Bot,” which is essentially a built-in project management assistant that can help to keep you on task.

Maintain Personal Health

Personal health doesn’t always come up with regard to on-the-job productivity, but it’s a mistake to assume it’s not a factor. As stated in our piece ‘5 Challenges for a Freelance Developer’ it’s important not to forget to “eat well, sleep and keep an eye on your health” in order to stay productive. Simply put, if your body and mind aren’t healthy, you’ll be less prepared to focus and have productive workdays. You’ll be a better and more prolific developer the healthier you are.

Written/Edited by: Amanda Fuller

Amanda Fuller is a freelance writer for over seven years. Since becoming freelance she has written extensively about work practices, both at home and in the office. She maintains that in order for a company to be successful they must pay as much attention to their employees as their profit margins. In her free time she practices yoga.

Categories
Tips

5 Challenges for a Freelance Developer

Thinking about becoming a Freelance Developer? Freelancing can provide overall freedom for you to decide your working hours and salary. Let’s go over some common challenges, pros, cons and trade-offs you may encounter choosing this career path. Hopefully, my experience will help you make an informed decision.

Challenge #1: Steady Income

A strong point in favour of a regular job is a steady income. As a freelance developer, you have to face reality. While there is no real cap to how much you can make, there will be peaks and troughs in your monthly income. 

High and low seasons won’t necessarily follow each other in fixed intervals. In other words, be prepared for long periods of low income especially during your first couple of years.

Pro Tips

Aside from the services you may provide, do your best to generate passive residual income. Maybe consider an app that sells revenue, unobtrusive ads on your website or even a channel on a streaming website. There are many options to choose from nowadays.

Save as much as you can when you are in the high season! Conduct yourself in a frugal manner and eventually, you’ll figure out how much you can add in your expenses without dipping into your savings. You can always use an app to help you manage your finances!

If you still live with your parents, do not rush to move out. Save as much as you can (and make sure to help your parents with the bills). When your savings and your base income are healthy enough, then plan accordingly to find your own space. As a freelance developer, you’ll have steady expenses but not a steady income. Getting involved in the finances of your home will give you firsthand knowledge of how things work. Even if you are fortunate enough and there is no need for you to assist in the household expenses, still offer to handle some of the bills, as this will be part of your learning process.

Challenge #2: Time Management

It’s in the name, Free-lancing! You are your own boss and you have total control over your time. This is a huge pitfall when it comes to freelancing. Indeed you can start your workday after 10 am but watch out. You may not be as productive as you’re hoping to be. Unexpected things come up. Your computer may break, your internet service may stop working and a number of other things could go wrong.

As developers, we pretty much get paid to figure things out and make them simpler and more accessible to everyone else. There are times when no matter how much planning you put into it, the beautifully crafted algorithm will not work and it doesn’t have to be a syntax error. It might be something far more insidious than that. For instance, back in 2006, I was working on an HTML project and wanted to track the checkboxes that were not checked by the user once a form was sent. It took me days to realize that unchecked checkboxes are simply not posted when the form is submitted. As simple it may sound, this was one of those things that you learn from a painful and time-consuming experience.

Pro Tips

Discipline is key for proper time management. Learn how to say “NO” when you have to. You love solving problems and helping people, I get that. However, don’t forget that your freelancing career is only as serious as you take it and your clients can sense that from a mile away. 

Set a working schedule for yourself and stick to it. It might not be easy but it will be totally worth it. If you have a strong reason to miss work, at least make sure you have some wiggle room to make up for that time. 

One tip to always keep in mind: Watch out for the holiday season. If you choose so, holidays may not limit your capacity to work but will probably limit your clients’ availability to answer your phone calls or emails, should you need anything from them.

*** Time Management is closely connected to productivity but we’ll cover that further in challenge #4

Challenge #3: Deliverables

Developers are responsible for solving problems. Many times very simple problems but others very complex ones. Your capacity to deliver such solutions will determine how successful you may be. Clients will do their best to communicate their needs to you. More often than not they will fail at getting their point across. Pay attention to every detail,- the context of the problem, the scope of the problem- and try to connect the dots between what they say, what they mean and what you understand.

Clients will do their best to communicate their needs to you. More often than not they will fail at getting their point across. Pay attention to every detail,- the context of the problem, the scope of the problem- and try to connect the dots between what they say, what they mean and what you understand.

Pro Tips

Be honest with your clients. If you can’t deliver a solution, let them know. You are not required to know everything. Mutual trust is something built over time and if you feel that -while you are not an expert in a subject- you may conquer the learning curve to deliver the solution, communicate it to your clients.

Communication is key. If a client hasn’t heard from you in weeks they may think that you have abandoned them. You do not need to email or contact them every day, but often enough to keep them up to date with the ongoing process of the contracted work.

Challenge #4: Being Productive as a Freelance Developer

This happens to be one of the toughest things to keep up with as a Freelance Developer.  It depends a lot on overcoming the previously mentioned challenges. Many times your productivity will peak when you need it the least (low season for example) and fail you when you need it the most.

In reality, this is a challenge for everyone, even people with steady full-time jobs. It puts extra weight and stress on a Freelance Developer because you’ll need to handle everything on your own, even more so at the beginning. You need to be your own boss, accountant, assistant, supervisor, public relations expert, customer support, and so many more. Say NO to yourself when you want to say YES, can be soul tempering as much as it can be disappointing, but it is critical.

Pro Tips

The road to a productive day is an exploratory journey. Know yourself, balance how much you demand and how much you reward yourself, do your best to be the boss you wish you had but also the employee you wish to have. Don’t forget to exercise, eat well, sleep and keep an eye on your health as your body and mind are the most important tools for you to provide your services. 

We tend to use our computers for everything we do: work, watch series and movies, play or stream games, catch up with friends and family, read and anything else possible., etc. I did it for a long time until I got my hands on an old console and noticed how much more productive I got. Separate these things. When your computer is your go-to for everything, you’ll want to play when it’s time to work and vice-versa. There’s nothing wrong with playing video games in an old console, reading an old book or switching to an old e-reader. Don’t let the trends make you waste money and time you don’t have. Every cent and every minute counts.

Challenge #5: Keeping up with the Industry

A new Javascript framework is born every day. Keeping up has to do with learning new things as it has to do with discerning which things are worth learning. Depending on your choice of stack or target for software development this can be very complicated and time-consuming.

Desktop, Web or Mobile, each have their own set of programming languages, database choices, architectures, distribution systems, update cycles and so much more.

Pro Tips

Choose a single target first and mature in it. Try to be a shark, a horse or an eagle, never a duck, yes the duck can fly, swim and run but never as good as the ones mentioned above. Master one domain before adding a second one. Trends can be very misleading, so be careful. Just because everyone loves or hates the “new” thing, that doesn’t mean you should do too. 

Be critical, read, compare, test, research and make informed decisions – at the end of this article, you’ll find some indicative useful links of sites and tools for that.  You’ll find an outstanding feeling of realization and meaning when you take your algorithms and carefully improve them, remember there’s nothing wrong with making mistakes. In reality, this is a core part of a healthy learning process. However small the step forward it may seem, it’s still a step forward. Code bases and apps are improved in tiny percentages in different areas which add up to a much larger percentage of improvement. 7% Faster on the client-side, 12% faster on the server-side, 16% faster and better-indexed queries switching png icons for SVG’s, removing unused assets and before you know it, your website, web-based or mobile app can be much faster and deliver a much better overall experience.

Conclusions from the Life of a Freelance Developer

As a freelance developer your path can be very rewarding and fulfilling as long as you always do your best. Even if getting the job done might not be enough sometimes, you will still have the certainty that you gave it your 100%. This will soon add up to your advantage.

The beautiful process of learning a new skill and putting it into practice, giving life to an idea, watching it unfold is pure science. This will provide you with a real and palpable sense of achievement and purpose. You start with a simple “hello world” in your first programming language and as you progress it gets more difficult but more interesting as well. Trial and error, you learn, you grow, you overcome or fail. Do it every day, code a little and become more competent.

The dynamics between the known, the unknown and the threshold you cross to narrow that gap is what’s so engaging about the freelance developer lifestyle. Conquer yourself as you conquer new skills.

Useful sites for reading and researching:

Useful sites and tools for testing & benchmarking:

Short Bio: Darwin Santos is a Web Developer from the Dominican Republic and has been a member of the Developer Economics Community since 2017. He specializes in web-based ERP/CRM hybrids and health care systems. He has been working with web technologies since the early 2000s. Several of his deployments have been running for years and are constantly improved and updated. He is also very experienced in database design, data normalization and data migration, with several successful migrations of 20+ years worth of data under his belt. He prefers functional and procedural programming over OOP.

LinkedIn: https://www.linkedin.com/in/darwin-santos-3a5b4066/