When an idea comes we all enthusiast developers start our engines and we explode in a motivation bomb. We want to get rid of whatever we are doing and go to the desk, launch Android Studio and start a new project! Then we leave it in the depth of our hard drive to be never touched again and then we ask ourselves "When will I publish another app?".
When it comes to be a developer of you own ideas you are on a very thin ice. You don't have deadlines, you don't have a boss harassing you and the lack of motivation is everywhere.
If you strugle to get work done you maybe are making some of the following mistakes.
1. Build an entrire framework at day 1.
When you start a project you are full of ideas, you are like a toddler in a sugar rush inside a toy store. A common mistake we all make is to start building the entire arquitecture of the project. We start developing and chosing final colors, we want to develop the entire API for the project, we build exceptions and they stack up with unused names like "NoValidStringReferenceLayoutDetectionException", then we build so many interfaces that we don't even know what to do with those and we forget what they even do.
When you start stacking all of those elements in your project you will requiere more project management and you'll end up givin up the most important part: Actually making the app do what you wanted to do. After this point, the project is no longer interesting and we delete it to start over again.
Start by focusing on the main model and answer the question: What is the app supposed to do?. Write that down, and start working on that. Forget about the layouts, forget about the Russian and Portuguese translation, forget about coding like a hacker, forget about the laws of proportion and the golden number and get your app do what you wanted to do in the first place.
When you have the heart of the app you can move faster to new modules like the themes or implementing a few interfaces to make it more clean and readable. Work from the inside out.
2. Get (late) job done in a weekend.
It has been a week. The project remains untouched and you say "I'll end it on the weekend".
When the weekend arrives you get up at noon, you get some breakfast and why not?, you could do some laundy while you watch some Netflix, I mean you have all night for your project right? Unless Oscar has invited guests over to your house and you end up waking up naked in yout kitchen.
It's ok if you can be more productive on weekends. I like to go to a coffee shop and do some work there but when I leave it for more that 1 day I forget what was I doing or worse: "What the hell is this interface for?". A weekend rush is very productive but when you haven't accomplished nothing in the week it's like starting a car in the middle of a really cold night and pushing the gas right away. You need some warmup, you'll need to keep track of things that you are doing and things that are already complete.
I usually do a couple of lines every day. One small solution at a time and I left tracks of my work for my future me. When the weekend arrives, I'm ready, motivated and with a lot of punctual tasks to do. I amazes me how fast my projects start evolving to real mature solutions.
3. Starting a new project when you are already in one.
Some companies manage their programmers very well. They know that you have to focus in one thing at a time and sometimes they have to reject projects because there is no spare time to do a good job for it. Get the job done, but get it done the right way.
It's very natural that once the juice is flowing the ideas start bursting from your creative rush. After all, you are human and your brain is constantly being stimulated but when you abandon a project to start one, you are not working twice faster, you are working 50% slower because you have to keep both projects alive. Remember mistake 2?.
Write the idea down instead, keep track of it and if you have spare time try to give more context to yout future projects so you don't have to think in that when you start it. Once you are complete wih a project then start the next one.
If you can handle 2 projects, try to not jump from one to another, do your punctual tasks, and move to the next projects, get the work done and get back to the previous.
Also, a project that gets interrupted half-development is more likely to end up abandoned.
4. Stopping because you can't figure out a single feature at the given moment
Sometimes it happens. You are in the middle of a code spree then you have to stop because you can't find out how to build a custom progress bar with a shape.
This mistake is very hard to avoid because it's impossible to know everything on the go. Most likely you have to stop so you can learn and ask for help. And after that you have to crash it a 100 times before you can be 100% sure that it won't crash again only to find out that it keeps crashinig. It's normal, you are learning.
But if a single feature keeps consuming your vital developing time try to workaround it. Find a solution, a temporary one that allows you to keep developing the the task, to get the job done and move on or better yet, ask yourself "Why is so important to develop this feature?". If you have a very good answer, then keep working on it but if you struggle to answer maybe you could skip that part.
5. Asking someone else to do it for you.
Stop it! If you can't pay a freelancer, a friend won't share time working for your projects. Saying "I gave you the idea" will not make you owner of the project neither the boss of whoever is helping you unless you pay for it.
Most of independent Android developers eat like any other person and it's very offensive to ask them to do them for free. Also nothing but morals and ethics stop them from stealing your ideas.
Grab a lap and "Just do it!".
Thank you for reading and share your toughts on those mistakes you have done.
No comments:
Post a Comment