Do you work for a Software Company or a Company that Sells Software?
You may be asking yourself, what’s the difference, plenty. If you are a developer who only codes because it is your job and you make a good living, which there is no problem with that, you may not enjoy working for a software company.
Both companies need those types of developers. But if you align yourself as a software engineer, who likes solving problems and is passionate about the profession of Software development, then you want to work for a Software company.
A company that makes and sells software is usually founded
by a domain expert who wrote or had a friend write an application he needed,
and they started reselling it. A
software company has usually evolved from a company that sells software but
learned that the value they are providing to their customers is a high-quality system
and high-quality customer support that improves the user’s lives.
Coding Practices
Software Company |
A company that Makes and Sells Software |
Coding standards |
We just follow how the source is already formatted |
UI Libraries used for consistent UX |
Just 3rd party or no UI libraries |
Application frameworks and templates are used |
No custom framework or templates are used; everything is
created fresh |
Developments tools standardized |
No tools are used or shared |
Unit tests are supported |
Thinks unit tests are not important |
Has custom NuGet Repository |
No custom NuGet repository |
SLDC (Software Development Life Cycle)
Software Company | A company that Makes and Sells Software |
Defined process from idea to release and support | Says they use Process X like or worse they use a Hybrid. |
CI/CD | Maybe automated builds for the main branch |
Automated Deployment | Does not have |
Automated Build Smoke Test | Does not have |
Automated Regression Test | Does not have |
Hotfix process | Does not have or is reactionary |
Provided visibility in to process and release | Has status meetings to track progress |
Quality
Software Company |
A company that Makes and Sells Software |
Focus on
quality and adding customer value |
Date
orientated |
Has hardware
and software available to test and develop what their customers use |
Tries to get
by with minimum testing environments |
A foundation
of automated test |
Does mostly manual
testing. States “We are moving towards
automated” |
Provides a
Product owner who knows and can explain the product |
Uses a long-time
employee as the “domain” expert |
Requires new
employees to go through product training as part of the onboarding |
Provide no or
incomplete documentation and assume you will ask if you have questions. |
Summary
To repeat myself, I don’t think there is anything wrong with
either type of company. I wanted to
explain how I see the difference so you can see which company has the same
values as you do and when you are interviewing you can determine if the company
has the same values.
If you accept a job with a company that has different values than you do, it would be like marrying someone that doesn't have your values, may be fun at first but those differences will cause you grief.
Comments
Post a Comment