Lessons learned when developing software in a company:
Add value
- Add value. Look to solve problems, not just build stuff.
- Be Pragmatic.
- Be a professional; ego trips and flame wars have no lasting value, professionalism does
- Learn, there is always a better way.
- while(developing) { Have a personal process and refine it }
- keep a journal/log/todo at all times. keep a running queue or stack (depending on how you organize)
Be a good teammate
- don't try to keep everything in your head, put designs and thoughts in paper to formalize.
- Extremely high rate of return on information sharing. Collaborate.
- Utilize tools so you don't have to make new ones that do the same thing.
Specs
- Implement to spec. If so spec exists, document. The document is now the spec.
- Writing code is part of the solution, after the problem is understood.
- Write to the API before creating it, make it something you would want to use.
Quality
- Time to do it right. If the time doesn't exist now, when will it?
- Are you making good software, or just trying to make some software work? Making a quick patch just pushes the time to do it correctly into the future. Fixing will make the problem go away forever.
- There is always work to do in areas of performance and code clarity/quality. Schedule this as part of the time spent.
Complexity
- Aggressively attack complexity or it will catch up with you.
- Don't be too clever for your own good if clever adds complexity. Be clever in simplifying. Complexity will cause brittle code and crusty developers, avoid needless mental work in code.
No comments:
Post a Comment