The following are valuable tenets for software engineering organizations.
Engineering Tenets
-
Keep it simple
-
Keep it working
-
Keep it important
-
Done now > ---> perfect later
Engineering Design Goals:
- Scalability
- Security
- Reliability/Robustness/Availability
- Performance
- Decentralized & Distributed (Peer to Peer)
- Flexible
General Code Design Goals:
- Reusability
-
Consistency
-
Simplicity -- means don't duplicate work
-
Portability
-
Factored to the minimum canonical
-
Instrumentability; e.g. logging, performance metrics, simulations
Engineering Focus Questions:
- Is the workload suitably aggressive?
-
Are you executing?
-
Are you working effectively, not just hard?
-
Are you sharing ownership of the work and output?
-
Are you taking risks?
-
Are you going to step up when given an opportunity?
Engineering Organization Goals:
- STEP UP == company grows and promotes from within
- Tech Talks
- 20% Project Time
Team Leads
Team leads have responsibility for daily oversight of design and development, technical knowledge of their area and adherence to development practices.
Feature design is often done by team leads.
- Task estimation
-
Test first
-
Feature design
-
Design reviews
-
Code reviews
-
Workload allocation
-
Appropriate documentation
-
Following code standards
-
Acceptance criteria - "Done" means Done!