Sunday, June 11, 2023

2023-06-12 Monday - 10 Good Habits for Software Engineers

After reading a recent LinkedIn post ("12 bad developer habits holding you back"), these are the first 10 Good Habits to adopt that came to my mind:

  1. Read lots of code - especially outside your organization/domain...serendipity will find you more easily.
  2. Read the documentation first (e.g., libraries you plan to use)
  3. Keep a personal journal (ideally, published somewhere, e.g., github, a blog, etc.) - document your experiments, lessons learned - share to help others - and benefit by elevating your professional visibility.
  4. Invest time in thinking, before coding - it will pay great dividends.
  5. Iterate quickly.
  6. Focus on getting it working first, then performance (80/20 applies, usually to this guidance).
  7. Learn to be your team's EXPERT in your debugging tools.
  8. Before saying "yes, we can do that" - understand the trade-offs, the ROI, and the business value you are creating.
  9. Learn/understand the business domain, deeply.
  10. Think in multiple dimensions - what are the upstream/downstream, and left/right - impacts and dependencies.

Sunday, June 04, 2023

2023-06-04 Sunday - Benefits of Early Architecture Engagement

[image credit: stevepb on]


In early May, I completed an architecture assessment for a start-up.

Why: There was no understanding of the architecture of what was built (no documentation/architecture/design artifacts - just code) - and no understanding of some of the critical issues/risks that existed in what was delivered.

Findings: 48 specific findings/recommendations, to help guide them in their future efforts.

Effort: An abbreviated/compressed ~2 week effort

Earlier Engagement: This would have been ideal - to help them avoid some decisions/outcomes - that will continue to have ramifications for years.

[Note: They expended a significant amount of their capital to engage with an offshore team to build their MVP. No documentation, just code (no design, no architecture artifacts)]

This would make an *excellent* case study - of how beneficial it can be to have a broadly experienced architect generalist engaged - from the beginning - even with a small startup.

*Some* of the types of artifacts and assistance - that can help even such early stage companies, or even internal (larger company) initiatives:

- Vision, Strategy, Roadmap
- Business Capability Model
- Business Requirements elaboration (Personas, Actors, Scenarios, Use Cases)
- Business Architecture
- Business Process Flows
- Technology Evaluation & Selection
- Technology Reference Model
- Cloud/Infrastructure Architecture Model
- Integration Architecture Model
- Technology Roadmap
- Non-Functional Requirements (NFRs)
- Vendor assessments/evaluations
- agile software development practices
- Solution Architecture
- Engineering mentoring & guidance
- Code Reviews
- Retrospectives
- Technical Risk mitigation
- Security Architecture
- Information Architecture
- System Reliability Engineering
- Operations, Monitoring, Observability
- Quality Assurance & Testing methodologies
- Principles, Policies, Standards, Specifications
- Legal, Regulatory, Compliance 


© 2001-2021 International Technology Ventures, Inc., All Rights Reserved.