Changing software development cultures begin with changing behaviors. If you are looking for new Ways to Transform Software Development in enterprise proportions, consider the top five ways to do so.
1. Transform Software Development by establishing Release Authority
The first way to transform software development in the enterprise is a fundamental point that, sadly, most organizations either forget or never quite learned. Every software development entity begins with release authority. Release authority is even important to developers who already have a Build System. At the end of the day, if your developers are still building locally and emailing artifacts, then you are without question starting from scratch.
2. Build Code with Every Commit
It is cultural norm to establish this rule. Avoid committing unless it is fixed or rolled out. Keep the build green at this stage of the game and frown upon anyone who commits broken code.
3. Unit Test
Unit testing is a frequently misused but important term for clients and developers alike. Sure, developers can turn on automated unit testing and many even classify unit testing as a local build testing functionality, widgets and fixes. It is important to understand that these methods are not actual unit testing. Unit testing is not the silver bullet so many developers make it out to be and instead serves as one extra bit of assurance. Unit testing is also another level of pre-commit validation. Once again, anyone whose commits break the build will prove detrimental to the project.
4. Scan Your Code
Code scanning, much like unit testing, is too easy a task to skip. But it is very essential to Transform Software Development. Tools vary in richness according to language but simply find the ones offered in your language and leverage them. Like quality and security, static and dynamic analysis needs to happen at every step of the way. Neither static nor dynamic analysis is a silver bullet. If you run a Java shop then look into Sonar. Code scanning tools are a lot like airplane cockpits in that they provide lots of feedback to help you make informed decisions. Just like a cockpit, code scanning tools will not “fly the plane” for you.
5. Get Control of Your BOM
A lack of a Bill-of-Materials denotes a lack of control over your product. There is more to gaining control of your BOM than putting third party libraries into your SCC tools. After all, there is no way to prove what you actually used, where it came from or whether or not it has been tampered with. There is more than one way to get control of your BOM. Here is a brief list that will help you with the “how”:
- Set up a binary repository
- Manage your dependencies at build time
- Automate deployment to dev
- Think about the functional decomposition of your app
- Think about how everyone can collaborate on testing
Akesh Gupta is President of Light Speed Solutions. Light Speed Solutions is a Long Island custom software development company that strives to deliver quality services on time and on budget.