We all have our share of mistakes. We evolve over time learning our lessons. This post is to help you introspect your thoughts on varied things that float in the realm of software development. Below is a compilation of "some" common misconceptions that we hear and get influenced by for bad.
- Writing Unit Tests = Test Driven Development
- 100% Test Coverage Report = Code well done!
- Building deployment artifacts by central machine = Continuous Integration
- Every developer checking in code in his branch of remote central repository to be merged with main branch at a later date = Continuous Integration
- Coding more hours = Commitment
- Churning tons of code = Geek
- Crippling team with one-developer dependency = Star Developer
- CTOs, Architects and the like don't code
- Estimates = Commitment
- A CTO sheperds development team and need not understand business.
- Big Fat Product = Sure shot success
- Idea is rare and so expensive. Execution/Implementation is cheap.
- Developers don't need to know the business domain. Business Analysts and Product Managers are meant for it all.
- Developers are cheap and replacable.
- MVP = Lean Startup
- Variations of MVP like Minimum Lovable Product, Minimum Awesome Product, etc is Lean Startup++
- Startups don't do TDD, because they don't have time.
- Enterprises don't do TDD, because they hire really intelligent developers.
- Startups hoping to hire geeks with their sales pitch and not give adequate equity or salary.
- Enterprises hoping to hire awesome developers by virtue of their brand.
- Immature culture = Open Culture
- Reducing levels in org hierarchy = Flat hierarchy
- The ability to speculate user needs and add features to product = Product Management
- MBA grads deserve to be Product Managers
- Feature richness = UX richness
- Selling a product ain't that hard
- Developing a product that scales and thrives is just science and has no art to it.
- Code intelligence over readability
- Code brevity over maintainablility
- Product Manager > BA > Developer > UX Specialist > Quality Analyst
- Every task is a User Story in Agile
- Adding Story Points to Bugs = Improved Velocity
- SAFe is the safest Agile
- Increased Velocity = Increased Agility
- TDD is waste of time and is practised by mediocre developers
- Pair-Programming is practised by mediocre developers
- Agile Certification = Agile Expertise
- SAFe is scalable Agile
- Speculating end-user needs = Business Analysis
- Using {substitute_your_choice_of_framework/language_here} solves scalability
- Cloud = Scalability
- Machine Learning is about algorithms and not domain knowledge
- Analytics has nothing to do with domain knowledge
- The strength of an Agile Coach is in his knowing how to use tools like Jira, etc.
- Software Craftsmanship is about using tools like Jenkins, SonarQube, etc.
- DevOps Team is the new jazzy name for Infrastructure Management team.
- Agile is the new way of managing developers
- UX is all about UI
- Full-Stack Developer = Frontend Developer + Backend Developer + Infrastructure Developer
- Product Manager is the new Project Manager
This list is surely not an exhaustive one. How about you contribute more to this based on your experience? Please do share yours thoughts as feedback/comments to this blog post.