Some – I learned In a hard way since I am occasionally doing few listed on this list, some of it are from observing others for these past 8 years.
1. Done
80% done is not done. Be honest of your progress. Do not think “I can do this at night or on weekend” is an healthy attitude. It will burn you and (always) the team. Share difficulties that you may find. Be honest and be clear — Your peer cannot read minds! enforce them to read REWORK if necessary! smirk
We will finish this specification, then when it is done and approved by QA, then you have my permission to DONE – Bane
2. Emphasis on Done
Read point number one – and back to this point again. Re-read point number one and then continue.
3. Always Irks Me
Misspelling is wrong – even if it’s a comment or variable name e.g. Transatcion. If you let this happen. OCD devleoper will sufre (no seriously – this will be hard to rafector) – did you notice my deliberate misspelling? feel irked about it?
4. The Sure Way To Avoid Chaos
Always prefer SuperLongVariableNameButMeaningfull
compared to foo
.
5. The Reason For Everything
Even though we don’t compensate for code-quality (even if we do we still deliver quality). If you think that a code is a ‘compensation of quality’ – Ask Fellow Dev. There’s no compensation of quality
– everything must have a reason.
6. Senior Vs Junior
There’s no such thing as Junior or Senior Developer. There’s Experienced and a young pandawan. Good Experienced developer will not let young pandawan to to experience the same mistake. So learn from your experienced peer — as for the experienced – learn the new minds from the young pandawan. Read this in Morgan Freeman’s Voice “We are equal” (OK. I know it’s Padawan – but Pandawan sounds better)
7. Changes = Challenges
Embrace changes
, consider it as a challenges. Yes you may found most of the time we curse ‘Change Request’ – but that from realistic business point of view. From Dev Point Of View — given unlimited money and unlimited time — it is all possible (yes this is a sarcasm – but the point is – do not swim against the current – you will break)
8. Make A List
List your to-do list. On a paper, task-list, issue-tracker, book, post-it or your bleep smart phone. Seriously.. make a list.
9. Post-Mortem
Post-Mortem you past success or failure. Why? so you can identify What is Wrong – Fix it – or if it’s irreparable – brace yourself for future problems (TODO: put brace yourself … is coming meme here)
10. Feature
One working cool feature is nothing – test it – show it – keep calm and move on. It’s nothing compared to the Pride that your solid work is being used and affecting life of real
people – so finish it. Keep Calm and revamp that hidden easter egg.
11. Other’s Perspective
Put yourself in other’s shoes. Specially your user. If a feature is a pain in the ass to use. Then it’s a pain in the ass to use.
12. Testing, Testing, Testing
Testing – Make an automated test if it’s necessary. Go wild. e.g. What if there’s no internet connection? naah.. that only happen in 3rd world countries — oh wait. We are in it.
13. Design All States
Design — always design a full state. a half-full state and a blank-state. Remember your Pinterest-like thumbnail layout can look like crap if there’s no content.
14. Crappy Developer Will Always Do This
Do not put NSLOG, Log.error, debugger on production code. Do not put commented code on production code – seriously – we live in the age of distributed source control – where you can just type or click-click-click to get the previous source-code.
15. Deployment Is Magic
Deployment – Murphy’s Law. Things will go wrong on the most epic timing possible. Brace for it — Expect for the best and prepare for the worst.
16. Bug – Taken
Bug – each time you find intermittent bug. Chant this in Liam Neeson’s voice
I don’t know where you are, I don’t what you intention are. If you are looking for ransom, I can tell you I am working for a new/poor/equity-promise startup that promise me things even without any legal-written-agreement. But what I do have are a very particular set of skills; skills I have acquired over a very long sleepless-nights-streak. Skills that make me a nightmare for bugs like you. If you let my software go now, that’ll be the end of it. I will not debug for you, I will not pursue you. But if you don’t, I will debug for you, I will locate you, and I will fix you
It’s a long chant – but trust me. It works! wink
17. Avoid Burn Out
Burn Out! it is the greatest enemy of Software Engineers, if it’s there – then – it’s hard to cure. It will creeping out on you. Specially if you have a long-unfinished-dull-project or shitty-project-managers. It’s the major reason of retention and major reason for lack of quality. People will leave because of this. I don’t have any good advice in curing this – but I mention it in this list for you to avoid it. As for me – I always tried to creeping in something new in my projects to makes things interesting.
18. Peer Review
Even the best Developer will make mistakes – Even your super perfect dream team will go clumsy on some details and forget things. Peer Review is not act of underestimating-intelligence – it’s the act of guarding each other’s back as a Team.
19. Find A Mentor
Really, when you find people with a lot of experiences. Observe and Listen to them. Make them a Mentor – learn from their past mistakes and absorb their wisdom (sometimes.. your current processing power will not understand. It’s OK. Keep the learning data somewhere in your brain – and someday it will just snap! as if you have an upgrade in your brain of something). I know – I’ve experienced the enlightenment in Project Management because of this learning data from my previous Senior Project Manager 😀
And then when that it just SNAP!
happen – don’t forget to thank them.
20. StartUp is Not Easy
No seriously, this is a long unforgiving place of multiple of despair. It’s not the idea – Try to lookup for many failed startups in your City and you’ll realize that it’s not always about the idea. It’s primordial soup of execution, people, luck and destiny entwined by chaos and uncertainties. So it will need good physique and mentalities of run the run, walk the walk and fly the flight. Behind overnight success of 1 billion club of startups – there’s multitude of failures.
You will get wrong all the time, but eventually .. you will right one-or-two times.