Enterprise Scale Development shownotes
Music provided by: Denis Kreynin https://soundcloud.com/denis-kreynin
Application Developers create the programs by typing in the source code which gets compiled into a working application or run as a script. Developers that are part of a team work on their portion of the code. Each module that gets created should be Unit Tested by the developer to validate it’s doing what it was intended before it gets merged into a larger application, cutting down on troubleshooting time when fixing problems found. This source code should end up in a code repository which has many benefits but most notably keep everything organized (current published version, roll back version, version in development).
When the code is ready to be built into an application, it’s time to do Quality Assurance (QA) on it. This is the job of the Testers to make sure as a whole the application is meeting it’s objective. Part of the Software Testing process is finding bugs within applications which get tracked as a defect, hopefully within a bug tracking tool so the next version of the software can fix the issue if it’s not a show stopper.
In the context of application development, Project Managers are the folks that organize the logistics of everything happening. Project Management is a huge field but at a high level they manage getting resources like computers and people, manage the scope of the work to be delivered, manage the time expectations for people to do their work, and stay on top of the costs. If there are any problems they can try to remove roadblocks but it’s their job to escalate any issues to the project stakeholders.
Change Management is the method to gate what goes into the live production environment, clearing up conflicts, ensuring things are ready for prime time and that everyone is aware what’s going down. Change Advisory Boards are the last people that bless changes going forward; typically they validate that change approvers have made sure that the deployment steps necessary are captured and that if anything goes bad that they can back the change out (and those steps are captured too).
Other roles:
- Application support get involved when “live” applications are having issues
- IT operations are the people who keep the infrastructure (e.g. servers, networks) lights on
- Engineering groups /administrators are the people that configure the infrastructure to get the most out of it
- IT Architects design patterns for how systems and applications interact with each other
Note:
- Developer access to production, and even testing environment as admin, needs to be limited.
- Integrity check should be done on source code or compiled applications to ensure only authorized changes made
- Security is everyone’s responsibility
The book mentioned for seeing why this is all needed and how to fix broken IT: The phoenix project