In: Computer Science
Description:
You have been asked to build an admin portal that will allow your
company internal employees to access the portal and perform admin
functions on behalf of company clients.
Here are additional details:
(a) Admin portal is accessible only on company network to only
company employees that have the "ADMIN" role.
(b) Access to the links is role based i.e. only authenticated
internal employees with "ADMIN" role are able to access the portal
and what links you can access once on the portal is determined
based on what other roles you have. So, same link will not be
visible to other admin who doesn't have appropriate role to access
the link.
(c) There are five catagories of applications and 5 admin roles for
each category. Here are the details:
# Category Role
Access
Links
======================================================================================================================
1. Global
ADMIN All Global
links
Manage User Accounts, Assign Roles, Help
Desk
2. Finance
FINANCE_ADMIN All Global links + All Finance Category
links Finance
Reports, Accounts Payable, Accounts Receivables, Tax
3. Sales
SALES_ADMIN All Global links + All
Sales Category links
Sales Reports, Sales Leads,
Sales Demo
4. HR
HR_ADMIN All Global links + All HR
Category links
New Hire, Onboarding, Benifits, Payroll,
Terminations, HR Reports
5. Engineering ENGG_ADMIN
All Global links + All Engineering Category
links Application Monitoring, Tech
Support, App Development, App Admin, Release Management
(d) The links redirect users to the admin application that is not developed by you. You only
You are asked to recommend a software development process for the
proposed system.
1. Is the waterfall model a good choice for developing this
system? Only Yes or No (5 points)
Yes.
2. Give four reasons with details to support your answer in 1. (20
points)
3. Is iterative development leading to a single release of the system a good choice for developing this system? Only Yes or No (5 points)
4. Give four reasons with details to support your answer in 3. (20 points)
5. Is agile development with releases of small increments of software a good choice for developing this system? Only Yes or No (5 points)
6. Give four reasons to support your answer in 5. (20 points)
7. Discuss your first thoughts on how you will approach the solution? (25)
EXPECTED ANSWER
According to me, Waterfall is not the ideal choice for developing the portal
Reasons:
Ideally building this site should not take much longer time. But if we use Waterfall, due to its nature of methods/processes it is bound to take more time than agile method because we can only see the progress of one complete step once we complete it. Like it’s only after the complete development we can see what functionalities are there. So if we missed out on something then again it needs to perform complete cycle to redesign the system with correction.
It is until the full and final release, users’ needs to wait for any use and operations. Till then nobody can use the website. But if we use agile method, the development, it will first create the basic framework to create the website then can execute blocks of development and complete them in minimal time and release them. In such way it can achieve partially functional website and at least few admin jobs can be performed instead of complete no use and then the functionalities will be added in short releases and help accelerate admin works.
In waterfall method, Testing and user acceptance are big concerns as unless complete build is provided testers and users cannot give any opinion and once they have some, the development cycle is initiated since the beginning. This cause time overhead and over budget and multiple large scale releases. In case of agile method, at least some functionalities will be used by some users and by each delivery, users can see the outcome and have their opinion which can be fixed in next development cycle. By this way, once the complete development is done, the build are almost correct and user verified.
Waterfall methods are costly to implement due to optimized user allocation and huge waiting time. For example, once the developers are done with their development they still needs to be allocated waiting for testing outcome and the completion of cycle. But in Agile, resources are utilized with maximum efficiency as the sprints are short and they don’t have to wait much. Once their part is delivered completely they can be released.
Iterative choice is a relatively better approach.
Reasons:
It will take less time than Waterfall to deliver a basic version of the website with limited functionality in developer environment and testers and users to test that.
User involvement is much better as after each iterative cycle they can test the system.
One single production release will ensure that quality delivery is done.
Better use of resources due to less waiting time for bug fix and patches with continuous test results.
Yes, agile will be best for this development scenario.
Reasons:
Small sprints will ensure user visibility to development and use them in Quality Assurance environment before implementing in production.
It will achieve best results as each block of deliverables will be user tested and verified.
Defined timeline and optimized resource allocation with predefined responsibilities to developers and management ensure better time and cost management.
Better planning and approach for bug fixes and changes needs to be done. Developers and testers and work concurrently most of the time reducing wait time.
My first though is-
Build a basic version of the website to accelerate the admin work with functionalities that can be used by all admins.
Build the website for each set of admin sequentially and test access thus ensuring the only correct set of admin see the correct content.
Use Agile method for best results.
IF ANY DOUBTS LET ME KNOW
THANK YOU....!