Independence (Self)
2. Get Things Done. Balancing principle and practice is an art, not a science. This balance is situation dependent; focusing on delivering value to customers (doing the right thing at the right time) whilst giving attention to the system’s evolving architectural quality (doing things the right way). Use advanced CASE and IDE tools. Automate repetitive tasks such as regression tests, builds, and deployments. Be proactive — not reactive. Communicate effectively by email, telephone, IM, and also in person by facilitating and presenting information in groups. Use wikis to share information; use online backlogs to manage projects and tasks across the team.
3. First Things First. Prioritize what is important and weight tasks by “bang for the buck”; some call this being Agile or common sense. Do not get distracted. Some sprints may be user and customer focused; other milestones may center around building technology foundations or paying off technical debt. For frequently urgent or distracting matters, resolve the root cause so primary focus can return to what is truly important.
Interdependence (Others)
4. Care about Customers. Customers and the organizations we serve give us a purpose and are the reason we are compensated for what we do. We must listen to users, show empathy, understand their requirements, especially those expressed and obvious, but also surface those in which intent is uncertain and less well known. Once we understand, then we also need to be understood through careful communication about our designs and projects in language and symbols that are precise, mostly visual, and jargon free.
5. Collaborate with Others. The concept of the lone coder as a hero is mostly a myth. Big, important problems in most organizations require collaboration amongst different stakeholders and a win-win mentality rooted in the common values and practices of respect, humility, integrity, change, articulated decision rights and incentives.
6. Keep Things as Simple as Possible. Systems and People (and Life) can be complicated, but it does not have to be. By emphasizing core values over rigid rules, we can allow important systems and relationships to remain strong, flexible, and still aligned around what is important.
Continuous Improvement
7. Passion. Great developers and architects love what they do. You cannot teach it, fake it, or hide it. They enjoy sharpening their saw, sharing their excitement about making things better, and improving themselves and others around them.
Enjoy the article? Follow me on Medium and Twitter for more updates.
References