Agile methodology is a widely used (now) method of project
management. PMI (Project Management Institute) defines project as a temporary
endeavor undertaken to create a unique product, service or result. If you are into project management or have
management skills, then I would suggest getting PMP certification.
in our context. the task of making the webpage
(www.themvcgroup.com) to a professional standard would be a project. A project
must have a definite end period. We do
know our end goals and most probably the route to achieve it.
Each product has its features, and to build this feature, we
will need to define a series of task. This
is how we create a project, series of endeavor or task.
Before dwelling into Agile, I want to explain few terms.
Business Owner, Application Owner: They are simply referred as business. These are
the people who conducts business, presents reports, knows about the business
aspect of the organization. How the organization generates the revenue? What
are the risks associated with the business? How to market the product/service
better? How to hire smart people etc? They are people who fund the project.
They are people who define what kind of application or feature they need (business
requirement) to do job more effectively and efficiently.
LOB( line of Business): When I am referring to LOB, I am referring to the department or
service within the organization. In Financial institution , Credit card service , Mortgage service could
be a Line of Business. Marketing and Finance, or HR, Or Operations could be
different LOB.
IT People/Technology Folks: These are the people
who are there to support the business or business application/processes. They
are the people who would have built or implemented the application. The UNIX Team
would be responsible for the hosting the servers. The front-end developer would
be responsible for making sure that GUI looks attractable for amazon.com. There
are also people on the backend such as data engineers and data modelers, python
developers and data analyst to provide constant support the application. One
good example here would be, when you apply for credit card through the web
application, the webpage would be designed by the IT. The model that runs
behind the Web page, to approve or disapprove would have been developed by data
modelers. The Data model would have been implemented by the IT group. The credit card application itself is owned
by the business team. Once the result has been made by the application, the
business team reviews it and decides on top of it. Lot of the website today gives the decision
instantly as the model behind the application has improved a lot or the
business has faith in the application and the decision made by the application.
Basically, the take away is that we need to be able to make
a distinction between business folks and Technology folks within the
organization.
Business Requirement/Business Process Improvement(BPI): Most like you will not be working on a brand-new business requirement. When I say brand new requirement, I mean for building it
from scratch. All those new requirements are somewhat part of the BPI. The system
or application already will already exists but cant do so and so, or it is very
efficient or is error prone. In our case, (www.mvcgroup.com) does not meet the
industry standard. Also, to keep it mind, lot of this requirement would be a
direct linkage of some regulatory laws or newly implemented policy. These days lot of the company does promote innovation, so it could be also a part of innovation series within the company.
Product Owner (PO):
PO is usually the guy who are very tech savvy and have in depth knowledge of
the business too. He/She does understand easily the need of the business or
application owner and can figure out the technological solution for the
business problem. He would be the tech lead. He is the one who prioritizes the
task in Agile environment and the guy who would be taking to the business owner
and senior management about the project. He is responsible for the deliverables
of the product along with scrum master. If you do not understand anything about the
project or its technical details, he should be able to make you understand on a
high level. He is the go to guy.
Scrum Master: Also referred as the Project Manager, he/she is the own who is responsible for
drafting the project plan. Scrum Master are responsible for resource
allocation, timeline and budgeting part. He works very closely with the team,
and he would be conducting all the daily standups and presents report to the Product
Owner. You should be able to manage his expectation. My suggestion is that, do
not take anything that you do not fully understand
the scope of the task. These days, people do encourage working on pairs, or
pair-programming concept, try to shadow the guy who has been there for a longer
period.
Agile Team: This team is responsible for all the work. It consists of the obvious ones- Business
Analyst, Software Developer, Software Test Engineer or Quality Assurance (QA)
and UAT and Deployment Team Operations Support and Production Support Team).
JIRA: It is a software that tracks the progress of the task.
It is nothing but a digital board where you can define all the task and assign
it to different people so that you can track it. It is widely used in the
industry.
https://www.atlassian.com/software/jira
Environment: Application
is development in different layers of servers. Each environment is technically different servers.
First Environment is the Development Environment also known as Dev Environment
or Dev Server. This is where the developer writes their code and does the
initial testing. Once developed, the code is pushed/deployed to Test Server or Test
Environment. This is where the QA does a robust testing using the test cases
through manual or automated tested. Once QC is passed, they are pushed or
deployed to UAT servers for final level of Testing. This is the server, where
business User does the testing to find out if it has meet the requirement given
to the agile team. Once UAT is passed, this is when the code is deployed in the
Production. Once deployed to PRODUCTION environment, the Agile team is off the
hook (for most of the case). The Support team is liable for the smooth
operation of the application and maintenance of the application or troubleshoot
any issues, the business user might report.
*********************
Exponential Learning:
This concept has nothing to do in Agile Methodology. But I think as a IT
Consultant, you need to grow your exponential learning curve. People will be helpful
in your initial few weeks, that is the time you need to cash in. Be prepared to
take notes, ask question about the application, what it is trying to do. If you
are a developer, dissect the code. Ask for the relevant document. If there is
none available, sit down with BA to dissect the code. Even when you are taking
training, try to relate the code with the business requirement. Ask yourself what
the code is trying to solve.