Saying that you’re a .NET shop, a Java shop or some other programming platform shop is just as ridiculous as if a software tester is saying that he is just a BDD man. Hopefully he is much more than that and has a more balanced approach to software testing, so he can select that test approach that makes the most sense for the problem at hand. Wouldn’t you be worried if you went to your car repair shop and were told that they’re only a piston shop?
If you define yourself and your approach to software development according to a technical platform then I fear for your future and your customers.
Being this limited in your software development approach will for sure cause you a lot of problems down the road because you’re limiting yourself too much.
Being a .NET or Java developer says nothing about how to use your platform/language skills. Mentioning a technology carries no promise that would assure me, as a customer, that you know how to tackle my problems.
It will still leave the following questions unanswered:
- How do you analyze my problems?
- How do you make sure that you have identified my core problems and don’t start tackling just the icing on the cake?
- How do you assure me that the solution you will build is sufficiently well designed (separation of concerns, sufficiently small domain model that wont get me into all kinds of trouble, will be maintainable, etc.)?
- How do you assure me that you know how to deliver a quality solution without essential bugs?
- How do you assure me that my maintenance costs wont skyrocket because you hacked together a solution?
If you can tell me that you can draw upon many approaches, such as Domain Driven Design (DDD), Use Case analysis, Transaction analysis, Service analysis, Domain modeling, SOLID, GRASP, SOA, CAP, EDA, CQRS, Hexagonal Architecture, Model Driven Development (MDD), Specification by Example, BDD, TDD, Continuous Integration (CI), Agile, Lean etc. then I will start to believe that you’re balanced and will do your very best to pick the approaches and solutions that will work best for my particular problem.
My last hope is that you’re also pragmatic and wont go overboard and over-engineer a solution with a lot of unused or unneeded bells and whistles 🙂
As a wise man once said: “I hire for attitude and train for skills”.
If you tell me you can a have made god architecture based on all the mentioned acronyms, I know you are the over-engenering-type, that focus more on the technology and being bussword compliant than actually solving the customers problem.
I you tell me you have delivered successfully projects the last x years, and you only know one platform, I’m happy. Not because of your language, but because of your track record.