Tools used in IT projects
Code Editor/IDE :
These are the tools which are used for writing codes.
Popular ones are Eclipse, IntelliJ
Code versioning tools :
These are the tools that are used to maintain and host your code.
It helps developers/programmers to track, maintain and keep their code in one place, it also allows multiple developers to work on the same code base.
Popular ones are GIT, SVN
How we use GIT
– A codebase is hosted in a remote server and developers will first check out the code in local machine and then after making changes they commit the code into the remote repository.
Checkout command:- git clone remoteURL (This will download the code in that path)
Commit command:- git commit -m “commit message info” (This will commit it and keep it on your local desktop only)
Push command:- git commit push (This will commit it remote repo)
In git version control, we have to use 2 commands, i.e. git commit and git push. Git creates a version in local desktop also, so that if there is no internet,
one can commit their changes and get the local system up to date and then push it later.
Code Build:
The tool or framework used to build projects.
A popular one is “Maven”
Why maven is required- Projects require various external libraries/jars and other frameworks to work or build. So rather than downloading and keeping all these jars in repositories,
we use the maven tool which has information about the library and it knows how and where to download while building the code.
Here we have “pom.xml” in the root folder which has a dependencies list, and in each dependency, we mention a library required.
Example:
dependency
groupIdio.matthewnelson.kotlin-components/groupId
artifactIdencoding-base32-linuxmips32/artifactId
version1.0.2/version
/dependency
Code deployment to environments/ Devops/ CICD
CICD – Continuous integration and continuous deployment means we have an automated process to deploy the projects to environments.
Popular tools for CICD – Bamboo, and Jenkins
In bamboo, we create plans.
The plans generally have below stages: Checkout the code, build the code and deploy to the environment.
SDLC Methodology :
1) Waterfall : Old way of SDLC. Here the projects used to be long-term. Business stakeholders will come up with requirements and generally, that is a few months and then developers will code the full project for a few months and then testers will test. The desire for that feature will be different by the time it goes live to end-users.
2) Agile: Here we build small features at a time and then push them one by one, so that we can see customer response in less time. Also, it allows stakeholders to change the requirements or features anytime.
Here we split the project into sprints and each sprint can be of 2, 3 or 4 weeks. By the end of each sprint, we have one delivery.
Scrum or standups: In agile, we have daily standups or scrum meetings. Here everyone updates about the task they did yesterday and what they will be working today. They can also tell if there is any blocker.
Scrum Master /Iteration manager: It is the person who runs daily scrums and keep a track of all activity.
Retrospective: Retro is a meeting that happens after each sprint. Here we discuss what went well, what can be improved, and what went wrong.
Agile Tool:
In agile, one of the most popular tools is “Jira”
All deliverables /tasks are created in Jira.
Types of environments
Developers and testers generally used the below environments during the project phase
1) Local environment: Here the developers write their code and test on their desktop/system
2) Dev environment: This is the first environment where developers push their code after local testing. Generally used by developers only for initial testing.
3) UAT/SIT (User acceptance testing / System Integration Testing): Here the developers push the code after dev testing and then use for test team to perform various testing.
4) Pre prod: After UAT testing, developers push the code to pre-prod environment. Pre-prod generally is very similar to the production environment.
5) Production: After all testing, code is pushed to prod which is used by end-users.