At 13 Llama Studio, we have no qualms of handing over the code base and giving away the ownership of the code to the client. The way I figure it is this –
Since most of the work we do is based on derivative works under the GPL license, the source code by default needs to be included as part of the deliverable. Yes, we build multiple interesting things with WordPress, but WordPress as a platform is under GPL.
Computer Engineer? Software Developer? Programmer? I have been in those shoes for quite some time, and I thought that I might share these tips with you folks. The article was originally published on Crazyengineers, but I have added to those and edited the article a bit.
- Read: Not only technical textbooks, but also other material. It gives you a good break from the programming, and it also builds your capacity to read and interpret long business requirement sheets.
- Cogitate: Before jumping into any program, think it through. Do you know the exact logic to be written? Do write down on a piece of paper what you intend to do. It may sound trivial but writing down helps clarify the problem.
- Communicate: Talk with your team mates, friends, colleagues, seniors, clients (if you get the chance) … talk about the project, talk about the technology involved … it helps solve problems that you could be stuck, it also helps you in understanding the subject matter better.
- Collaborate: Offer to help your team mates, understand what they are working on. There is a deep satisfaction in helping your friends and colleagues. Not only do you learn new things, but also you earn the respect of those colleagues.
- Why?: Do not be afraid to ask this question. Sacred cows can be slaughtered when you ask questions. One who asks a question may seem a fool, one who does not remains so forever.
- Revisiting: Do not cringe from revisiting your own code. It gives you an opportunity to improve your work.
- Change: It is constant. Businesses change, systems change, people change, requirements change, and scopes as well change! Do not for once think that a static view of applications is acceptable. So when you work on something do ensure that it is flexible and open to change.
- Documentation: This is the key to your freedom. If you do not do enough of this, you will never be able to make your work independent of you. In this case, you will never be relieved of that task. Point number 5 becomes all the more important!
- Humility: Do not be ashamed for asking help. Help within the team, to seniors … even asking for help on public forums and IRC networks. Most people are more than happy to help someone who asks nicely.
- Disconnect: Sometimes you need to stop the fast pace of work, and take breaks. Go on outings on the weekends, go out with your friends, your family. Connect offline and disconnect from work. It helps.