Professional Documents
Culture Documents
The Managing Director of PCW is frustrated by the problems associated with adding
new requirements to the application and getting modifications completed in the
previous software application used in the PC WORLD company due to the software
development company’s usage of traditional waterfall model in their projects.
Therefore, the company currently has moved back to the old paper-based system.
Managing director or PCW has decided that PCW will use a company which is
following a software development methodology based on Agile philosophy to develop
the software for a new order tracking system.
JJLP Software (JJLP) is a software development company. JJLP use SCRUM as their
software development methodology. The Managing Director of PCW has decided to
contract JJLP, on “time and materials” basis, for the development of the new order
tracking system using Scrum development approach. You have been hired as a
software engineer for JJLP Software (JJLP) is a software development company. You
have to complete below tasks in completing the software project for PC World
company.
The new order tracking system will replace the old paper-based system and is likely to
include some of the following functionalities:
The Application Development industry has seen a lot of changes in a relative short period of
time. From both sides of the fence customers looking for software solutions, and the resource
pool of application development talent there has been considerable upheaval over the last
few years.
The need for better quality control of the software development process has given rise to the
discipline of software engineering, which aims to apply the systematic approach exemplified
in the engineering paradigm to the process of software development.
There are many approaches to software project management, known as software development
life cycle models, methodologies, processes, or models. The waterfall model is a traditional
version, contrasted with the more recent innovation of agile software development.
1.1
Problems
Storage and accessibility
The physical space paperwork can take up is significant and will only continue to grow as
time goes on. The centralized office may no longer be able to hold all documentation and will
result in storage in different rooms, building or locations. This will slow down accessibility
thus productivity, result in damage or lost documents and increase storage costs.
Example : The average office spend $2,100 per year to maintain one four-drawer filing
cabinet and it costs $220 to replace a lost document. Multiply this across the organisation and
the cost is staggering.
Errors
One of the largest problems faced by organisations is document errors. When documents are
manually authored with pen and paper, they can be illegible and incomplete causing a
negative flow-on effect. Editing becomes hard labour because changes need to be physically
made or if completely illegible, a new document will need to be created. Information may
need to be tracked down by other employees and with the time passed, they may have
forgotten. Ultimately, this can result in incorrect documents with numerous errors and
therefore affect the client and bottom line.
Team collaboration on documents becomes challenging and time consuming when working
with paper. Multiple copies need to be printed, all ending up with their separate annotations
which then still need to be changed on the initial document. Once the initial document is
updated, more copies need to be printed, approved and then filed away. This lengthy process
slows down staff with their current workload, which there is no time for.
Babysitting isn’t just for paper documents, either. When don’t have workflow management
software, digital documents need supervision, too. They have to be delivered from mailbox to
mailbox, or via a file-sharing tool like Dropbox. Or they might even be printed, scanned, and
emailed several times.
Without automated data entry software, data entry is a manual and repetitive process.
staff, customers, and vendors routinely enter data onto a form for organization. However,
there are certain fields they have to fill out each time, like name, company, and so on. It gets
redundant, and it takes up a lot of their time. Plus, they could easily mistype something and
the form could move along in the process without getting corrected—or without getting
corrected until it’s too late.
When paper-based forms are used, it takes even longer and introduces even more
opportunities for error. Handwriting could be misread. Data could be rekeyed incorrectly.
Forms could be lost or damaged before the information can be processed.
Data entry continues to be a problem when it becomes time to transfer data from forms into
your back-end system. Without the right automated data entry software, even data that is
entered on a web-based form has to be re-entered. In fact, 55% of users still end up rekeying
data from forms, rather than automatically syncing their forms with their back-end systems.
Reputational damage
It’s a cost that’s not easy to quantify but is critically important for the competitiveness of any
field services business…reputation.
It’s the trust that customers and clients have in ability to deliver what you promise. It’s
something that’s extremely hard to build and all too easy to lose.
In an increasingly digitally connected world, people now expect the kind of convenience
speed and efficiency that have been made possible by digital communications.
It’s a standard that a paper-based management setup will always struggle to meet.
A paper-based approach means slower processes, more administrative resources and higher
risk of inefficiency - documents lost, handwritten notes being misread and paperwork
incomplete.
With the viral power of social media, negative feedback, poor ratings and angry comments
can have a devastating impact on a company’s reputation.
It’s an area where digital management methods have a major advantage - allowing checks and
notifications to be automatically integrated into the everyday workflow.
These benefits help to minimise risks and can boost an organisation’s competitiveness when
tendering for contracts.
Security issues
Regardless of size, for any organization is important to protect its data and other valuable
assets. One of the biggest information security risks for businesses is paper because printed
documents can be easily lost,
Prone to damage
Manual documents can be easily damaged, lost, misplaced or stolen. A fire or natural disaster
could mean the loss of essential information.
Document transportation
Transporting documents in a paper-based system is quite complicated, slow and inefficient.
Solution
Accessible Anywhere
Users can access a web-based system anywhere. So long as they have an internet connection,
a web browser, and the appropriate login details. This means that users can access the data
they need when they are away from the office. It also brings the possibility of staff working
from home.
Centralized Security
As web apps are installed on web servers, security is controlled by an IT professional. That
avoids sensitive corporate information being held on many local client PCs, which are not as
secure. Employees can access data when they are away from the office via a web application.
So, it is not necessary for data to be held anywhere other than the secure central location.
Increased Efficiency
In most businesses, the deployment of web-based solutions leads to the streamlining of
business processes. Often, paper-based processes can be replaced by workflow-based
solutions. The business process improvements can lead to higher employee productivity and
lower costs.
Web based custom application development can provide businesses with significant cost
savings and productivity improvements. Now that internet access is almost universally
available and internet speeds have significantly improved, applications that previously had to
be client based can now be deployed on the web.
Although this is the case in developed Western countries, it is not the case worldwide. In
some countries, internet access is unreliable. So, major deployment of web-based applications
may still not be possible. International organizations with overseas offices may not yet be
able to take full advantage of web-based solutions.
For domestic organizations, though, web-based systems have a promising future. From web-
based office applications, like content management systems and productivity applications, to
custom web-based software developed specifically for your organization, the foundation of
many future software solutions is likely to be web-based
When switching to a Cloud computing system, all of the company’s documents are housed in
the one place – you just need to do is simply login. The cost of storage will reduce
dramatically, as cloud storage is less costly than physical storage and all documentation is
safe, meaning no document will be damaged or destroyed ever again. Search time will also
decrease because there is the handy search bar available. Type in the relevant keyword, tag or
file number and within a matter of seconds, everything you need will appear.
Collaboration becomes easy when using Cloud computing. Documents can be readily
shared, updates are in real-time, changes can be tracked and all annotations can be made on
the same document, then owned by users. This way of collaboration also gives an equal
opportunity and higher levels of participation by team members.
PLATFORM HAPPY
Not only is being able to use a less powerful computer (or tablet) a benefit of web apps,
having a different operating system isn’t an issue either. It’s all about the browser. Whether
the user is on Windows XP or 10, Mac OS or Linux, the web app is built for the browser.
True, some browsers don’t play nice with others. However, It’s generally much easier to code
for different browsers than it is for different operating systems. On top of that, the interface
will usually be much more familiar to the user.
Improved Security
The SC Magazine survey mentioned before also brings up another point. Workers aren’t
updating software due to productivity: 60% of the businesses they surveyed are not always up
to date when it comes to their software. The biggest problem that this leads to is security.
Updates are often released to programs just to patch security holes and not just to fix bugs.
The problem is, if the updates never take place, the holes never get patched and the
computers are still vulnerable.
Support
In a perfect world, users would never need to access support. Every program on every
computer would just work perfectly and every user is perfectly knowledgeable. Of course,
that’s not the case. Luckily, the old saying that there is always someone smarter out there can
work to our advantage. Many web apps have built in community support already accessible
online. This allows for the quicker resolution of issues, because the chances of somebody else
having the same problem that has already been fixed are pretty good
User Tracking
With web apps, there is built-in user tracking. This makes it much easier to figure out what
works with built programs and what doesn’t. Then, it makes improving future versions more
simple. Of course, we already talked about the ease of updating web programs, so developers
can make sure that their improvements are actually being utilised.
Offline Use
Although being able to be used online is a huge advantage, some people are concerned about
the necessity of being connected to the internet. In fact, just because it’s a web app doesn’t
mean it has to be used online. Offline versions can be built just as easily, although some of
the advantages are lost, this does eliminate a certain drawback
Organizational
Iterative Linear
structure
Involvement of
High Low
clients
Development
Evolutionary delivery Life cycle
model
Reviews and Reviews are done after each Excessive reviews and approvals by
approvals iteration leaders
to move forward without fear of reaching a sudden standstill.
Agile development model is also a type of Incremental model. Software is developed in
incremental, rapid cycles. This results in small incremental releases with each release
building on previous functionality. Each release is thoroughly tested to ensure software
quality is maintained. It is used for time critical applications. Extreme Programming (XP) is
currently one of the most well known agile development life cycle model.
1.2
3. Employee turnover
Every project has a number of developers working on it. When a developers leaves, he or
she may take critical information with him/her. This can delay, and sometimes derail an
entire project. Ensure you have resources where team members can collaborate and share
knowledge.
4. Breakdown of specification
During the initial phases of integration and coding, requirements might conflict. Moreover,
developers may find that even the specification is unclear or incomplete.
5. Productivity issues
On projects involving long timelines, developers tend to take things easy to begin with. As a
result, sometimes, they lose significant time to complete the project.
6. Compromising on designs
In order to get stuck into the next ‘real’ tasks, developers tend to rush the design-process.
This is a waste of programming hours, as designing is the most critical part of software
development.
7. Gold plating
Developers sometimes like to show off their skills by adding unnecessary features.
For instance, a developer might add Flash to a basic login module to make it look
‘stylish’. Again, this is a waste of programming hours.
8. Procedural risks
Day-to-day operational activities might hamper due to improper process implementation,
conflicting priorities, or a lack of clarity in responsibilities.
9. Technical risks
Sometimes software development firms reduce the functionality of the software to
compensate for overruns pertaining to high budgets and scheduling. There is always a
conflict between achieving maximum functionality of the software and peak performance.
In order to compensate for excessive budget and schedule overruns, companies sometimes
reduce the functionality of the software.
11.Bad Timing
Speed matters. In a highly competitive environment, one day can mean big profits or big
setbacks. Scheduling problems can arise for a variety of reasons, for example:
· the time for the project was initially incorrectly calculated and set;
· the project manager does not properly track employees, skills, task status;
· the functional features of the final product were not determined in a timely manner;
· unexpected and urgent expansion of the project scope;
· lack of resources, etc.
Tips to avoid this software development risk: apply agile methodologies, ensure the
maximum involvement of all team members in planning and estimating, receive feedback
at all stages, starting from the earliest ones, involve the Owner or Stakeholders. Another
solution may be an emergency expansion of the team to increase the speed of
development, however, this can significantly affect the project budget.
In this case, only flexible risk management can help. However, as practice
shows, in case of serious obstacles, it will not be possible to completely
avoid
13 Poor Productivity
14 Poor Management
As statistics show, 32% of projects fail due to poor project management. This concept
usually includes:
One of the consequences of poor project management can be the turnover of employees:
key project developers leave the team, without passing on crucial information on the
project to anyone, this entails delays in development, failure to meet deadlines, and
budget.
Therefore, high standards are always set for the project manager. He must combine the
traits and skills of a strategist and tactician, be deeply involved in the project, effectively
communicate with the team, build a strong organizational framework, and implement
elaborate documentation processes.
1.3
2.1
Other tools are used more or less depending on the language, development methodology,
and individual engineer, often used for a discrete task, like a debugger or profiler. Tools
may be discrete programs, executed separately – often from the command line or may be
parts of a single large program, called an integrated development environment (IDE). In
many cases, particularly for simpler use, simple ad hoc techniques are used instead of a tool,
such as print debugging instead of using a debugger, manual timing (of overall program or
section of code) instead of a profiler, or tracking bugs in a text file or spreadsheet instead of
a bug tracking system.
The distinction between tools and applications is murky. For example, developers use
simple databases (such as a file containing a list of important values) all the time as tools
However a full-blown database is usually thought of as an application or software in its own
right. For many years, computer-assisted software engineering (CASE) tools were sought
after. Successful tools have proven elusive. In one sense, CASE tools emphasized design
and architecture support, such as for UML. But the most successful of these tools are IDEs.
NetBeans
NetBeans - web development tool
NetBeans is an open-source IDE that allows you to develop desktop, mobile, and web
applications.
The tool is written in Java and allows you to quickly and easily create and develop
applications.
NetBeans is our top choice in the drag and drop software development tools category and
web developers love it.
Features
Tools for JavaScript, HTML5 and CSS3
Community provided plugins
Ability to write buga free code
Fast code editing
Supports multiple languages
Atom
Atom is an all around text editor and useful software development tools. It is an open-source
that can be used and customized to do anything without the added effort of modifying the
configuration file.
Based on its suitability for the development of management tools we’ve included Atom in
our software development tools category.
Features
Cross-platform editing
Smart autocompletion allows for faster coding
In-built package manager
Comes with 4 UI and 8 syntax themes
Easy to customize and style
JetBrains
JetBrains is a set of professional software development tools for coding in Java, Kotlin, C#,
C++, Ruby, Python, PHP, JavaScript, and more languages. You can get free access to all
JetBrains IDEs if you are students or teachers. You can verify by several options: your
educational email, ISIC or ITIC card, official document, or with Github pack.
Cloud9 IDE
Visual Studio
Visual Studio is a collection of services. It is fast and easy to plan, build and ship software
across a variety of platforms. These software development tools allow the organization to
create the perfect development environment.
Features
Track and manage all ideas on Kanban or scrum boards with agile tools
Improve code quality and catch issues early
Build, manage, secure and share software components
Automate and simplify Azure deployments
Tools for manual, performance and automated testing
It offers a centralized version control system with free private repositories.
Sublime Text
Sublime Text is a sophisticated text editor for code, markup, and prose. There’s a lot of
shortcuts that enable you to open files and jump between lines easily. Sublime Text let you
change many lines at once due to the multiple selection option. You don’t need to go
through the menus, you can just search for what you need. You can also switch between
projects easily. It works very well!
Notepad++
Notepad++ is open source code editor written in C++. It supports various programming
languages running under the Microsoft Windows environment. But is has a few drawbacks.
Here, is a curated list of top 10 alternatives which can replace Notepad++. This list includes
commercial as well as open-source code editors (IDE) with popular features and latest
download link.
jEdit,
jEdit, a code editor program which is written in Java. This open source tool supports
hundreds of plugins and macros. It offers a large collection of plugins maintained by a
worldwide developer team.
Features
Built-in macro language & extensible plugin architecture
Allows copy and paste with an unlimited number of clipboards
You can download plugins with the help of the plugin manager.
Register contents are saved across editing sessions.
Allows auto indent, and syntax highlighting over 200 languages
textMate
TextMate is a versatile plain text editor for mac with unique and innovative features. The
tool offers support for many programming languages, writing prose in structured formats
such as blogging, running SQL queries, writing screenplays, etc.
Features
Auto-Indent for Common Actions
CSS-like Selectors to find the Scope of Actions and Settings
Dynamic Outline for Working With Multiple Files
Function Pop-up for Quick Overview and Navigation
Run Shell Commands from Within a Document
Visual Bookmarks to Jump Between Places in a File
Zend Studio
Most web developers opt for Zend Studio because of its optimal speed. Writing and
debugging code in Zend Studio doesn’t demand any extra effort and time from developers.
While supporting PHP 7, it debugs PHP scripts by integrating X-ray, Debugs, and Zend
Debugger. This comprehensive PHP IDE comes with an exciting set of features and
powered to deploy applications on various servers, including servers in the cloud.
Developers can extend Zend Studio via Eclipse plugins.
Zend Studio Features
Indexing and searching PHP Code.
Faster Performance in the validation.
Zend Framework & Zend Tool Integration.
Docker Support.
Support for Eclipse Plugin.
Zend Studio Specialties
Languages supported: PHP, JavaScript, Visual Basic, C, C++, and C#.
Platforms supported: Microsoft Windows, Linux, and MacOS.
PHPDebugbar
PHPDebugbar is a PHP debugger that can run with any project and display data from a
broad range of web apps. This PHP development tool includes two parts: main bearer
object and data collectors and the render. A Standard-bearer includes a pre-configured
built- in set of collectors.
Along with PHP, you can also catch JavaScript and HTML. In addition, PHPDebugbar can
inspect CSS elements and monitor networks. By offering more features that developers
expect, it becomes a quite impressive open source solution. It can be the best option for the
profiling of data from any web application. It allows you to create your own collection for
easy integration.
PHPDebugbar Feature
Monitor network traffic.
Handles AJAX
requests.
Log & debug directly to Debugbar.
Fast & easy to use interface.
Preview config& application config.
PHPDebugbar Specialties
Languages supported: PHP, Ruby, .Net and Java.
PHP versions supported: PHP 5.5 and above.
Cloud9 IDE
Really interesting 100% online software programming tool with collaborative features for
teams to work together
Waterfall Model:
If you are into software development at some point or the other, you would have bumped
into the Waterfall Model.
Moreover, this methodology also talks about the fact that going back to deal with the
changes is not possible.
Figure
Advantage
Easy to understand and functional
Simple enough to handle as model is rigid
Saves significant amount of time
Allows for easy testing and analysis
disadvantage
Only matches precise needs
Not applicable for maintenance projects
No option to know possible outcome of a project
Not excellent for long and ongoing projects
Prototype Methodology:
It is a specialized software development procedure that initiates developers towards making
only the sample of the resolution to validate its functional essence to the customers and
make essential changes before creating the authentic final solution.
In fact, the best part of this methodology is that it tends to resolve a set of diversifying
issues occurring with the waterfall method.
Figure
advantage:
Gives clear idea about the functional process of the software
Reduces the risk of failure in a software functionality
Assists well in requirement gathering and the overall analysis
Disadvantage :
Chances of extension in management cost
Excessive involvement of client can affect processing
Too many changes affect the workflow of the software
Development Methodology:
As an innovative approach, the agile software development methodology is used for
articulating a well-organized project management procedure allowing for recurrent
alterations.
Certainly, such type of a methodology is one theoretical outline for undertaking several
software engineering projects.
Another good thing about it is that it minimizes peril by creating software in short time
boxes, known as iterations, which happen to last from one week to one month.
Advantage :
Adaptive approach that responds to changes favorably
Allows for direct communication to maintain transparency
Improved quality by finding and fixing defects quickly and identifying expectation
mismatches early.
Disadvantages :
Focuses on working with software and lacks documentation efficiency
Chances of getting off-track as outcome are not clear
Spiral Model:
Being a highly sophisticated design, it is meant to reduce the early risks in the project.
As per the process going by, the developers initiate on a smaller level and explore the
included risks in it.
Further to this, the developers are intended towards crafting a plan for iterating of the spiral.
The accomplishment of any Spiral Lifecycle model is based on consistent, observant, and
conversant management of the project.
Advantage :
Risk factors are considerably reduced
Excellent for large and complex projects
Allows for additional functionality later
Suitable for highly risky projects with varied business needs
Disadvantage :
Costly model in software development
Failure in risk analysis phase may damage the whole project
Not appropriate for low-risk projects
Might get continued and never finish
The foremost aim of this XP model is to reduce the cost of software essentialities.
It is fairly mutual in the XP model that the price of altering the requirements on future stage
in the project can be really whooping.
Advantage :
It lays focus on customer involvement
Establishes rational plans and schedules
Developers are exceptionally committed to the project
Equipped with modernistic methods for quality software
Disadvantage :
Effectiveness depends on the people involved
Requires frequent meeting for development raising total costs
Necessitates for excessive development changes
Exact possibilities and future outcomes are really unknown
Joint Application Development Methodology:
The Joint Application Development Methodology is a requirements-classification and user-
interface expansion approach that necessitates for the end-users, clients and developers
attend a powerful off-site conference to accentuate and confirm software system.
This methodology serves towards including the client in the design and expansion of an
application.
It tends to lay emphasis on the business difficulty rather than methodical details.
Advantage :
Allows for simultaneous congregation and alliance of excessive information.
Produces huge amount of valuable information in short period
Immediate resolving of differences with suitable assistance
Provides forum to explore multiple points
Disadvantage :
Takes excessive amount of time for planning and scheduling
Requires significant investment of time and effort
Calls for highly trained experts, which is tough to find
(Likewise, KANBAN is a process that helps teams to collaborate and work effectively.)
Basically, this excellent development is suitable for those development projects that are
constantly altering or extremely developing requirements.
The Scrum Software development model initiates with an ephemeral planning, conference
and completes with a concluding review.
This growth methodology is used for prompt development of software that happens to
include a series of iterations to generate required software.
Advantage :
Decision making lies in the hands of the team
Business requirement document is considered insignificant
Lightly controlled method empathizing with constant updating
Disadvantage :
The processing method suffers because of wavering costs
Not suitable for big sized projects
Requires highly expert team, which has no place for novices
Within agile approach the steps of web development are mostly simultaneous. All team
members, from decision-makers to designers and content creators should organize meetings
during the early stages of web development. Understanding of project requirements on all
stages by all team members reduces the need for constant emails, calls and meetings
throughout the entire process. Due to agile approach work that took 4-8 months can now be
accomplished much faster.
The typical agile web development process is divided into a series of ‘sprints’. Each sprint
involves discovery, design, development and testing.
Regular Check-ups
In agile development, testing is integrated during the cycle. This means that there are
regular checkups to ensure that the product is working right during the process of
development.
Lower Costs
Faster development eliminates the need for overtime payment.
Higher Productivity
The opportunity to better estimate the project provides with a higher productivity.
Reduced Risks
Agile methodology eliminates the chances of complete project failure. This approach
encourages open communication between the customer and web development team and is
great for those who value transparency.
Flexibility
Project requirements and workload are not fixed. Clients have a possibility to change both
these aspects if they find it necessary.
Wrap-up
Web development is much more than making websites or applications. This process
includes further support & maintenance as well as updates and checkups. Our team at
Wishdesk always recommends agile for custom web development projects. This approach
helps to deliver quick and more effective results and provides with long-term project
maintenance.
Visual Studio Code has some very unique features. They are listed as below :
1. Cross-platform support :
Windows
Linux
Mac
2. Light-weight
3. Robust Architecture
4. Intelli-Sense
5. Freeware: Free of Cost- probably the best feature of all for all the programmers out there,
even more for the organizations.
6. Many users will use it or might have used it for desktop applications only, but it also
provides great tool support of Web Technologies like; HTML, CSS, JSON.
There are a few things, which one can find a bit odd compared with so many features. It
mainly helps the front-end developers as compared with the back-end developers. But as per
some user’s opinions, it is equally helpful. It supports most of the languages used by most
of the programmers but other languages might have to downloaded or extensions may have
to be used for them. Along with this common zoom-in, zoom-out brightness, theme
selection features too are made available.
C#
Visual Basic
Java-Script
R
XML
Python
CSS
GO
PERL
Another feature which naïve-users or anyone can see instantly different from other editors is
the user-friendliness of the Visual Studio Code. The usability is very easy to handle. The file
is arranged hierarchically and has regular softwares like toolbar, status bar, and a sidebar. It
also has a floating windows explorer window, which can be fixed at one place according to
convenience, which consists of the directory structure of files. These files (code files, image
folders, etc.) can be opened or renamed from here and changes will automatically get
reflected in the storage.
With advancements in technology day-by-day, Visual Studio Code is going to play a pivotal
role in the development of software’s. With its ever-evolving features and soon-to-be-added
new settings, which will enable users to work with it from anywhere, it is certainly “THE
THING” to keep one ahead of everyone in this ever-increasing IT market.
2.3
Solution
High efficiency. Even companies operating in the same niche do business differently. Their
internal processes are usually different. The product, which is designed exclusively for
needs, doesn’t contain any unnecessary functions, and it allows to quickly achieve the
desired results.
Usability. As noted above, custom programs don’t have unnecessary functions. This speeds
up the work and allows to optimize processes. In addition, the absence of unnecessary
components accelerates training the staff responsible for working with it. Another reason
why this is convenient is the integration option. If the company used to operate with several
ready-made solutions, now, the developers can integrate them into one system without
losing data.
Flexibility and scalability. Ready-made solutions are usually targeted either at a small
companies or at large enterprises. It’s difficult to find a middle ground, especially if you
don’t know what features might need in the near future. As the business develops, bespoke
software can be adapted to changing needs. Another important point: can easily increase the
number of the system’s users without slowing down its speed.
Long-term benefit. If you use a product with a license fee for each connected user, your own
development will be especially beneficial for you. Even after several months, with
increasing staff, the savings on licensing fees can be very high.
Security. If someone hacks a user account, the information for each customer will be in
danger. Because cracking the individual system requires a targeted attack, there is less
public information about its functionality, and it becomes much more difficult to do that.
Moreover, you can reach an agreement with the developers on additional security measures
and create a higher level of protection.
Independence. The intellectual property for the product belongs to are not tied to a specific
supplier who can change his plans anytime. If you aren’t satisfied with the service level, can
change the developers and find more suitable performers, as are the product’s owner.
Competitive advantages. Since use a customized solution, this can give a number of
competitive advantages, such as increasing efficiency, increasing employee and customer
loyalty, and improving other business-relevant factors. The introduction of exclusive
innovations in the product for internal use can help to stay one step ahead of the competitors
A mobile app, developed to attend to these needs, will combine several steps into a single
process to significantly speed them up, as well as automate the transfer and storage of the
data received. If necessary, it is also possible to have the app work in an offline mode
and synchronize the results with the database after being connected to the Internet.
Data on Demand
Another problem that businesses often face is the lack of required data at hand when it is
needed. This is especially true when it comes to an accounting report done manually. In this
case, data acquisition may take a lot of time.
For example, by using a mobile app, airline customers can check-in for a flight and register
their luggage while standing in the queue. Using a smartphone, insurance companies’
customers can issue comprehensive insurance policies on their own.
An app developed for a company that provides goods delivery courier services works based
on this principle. It automates delivery order management, accounting, communication with
senders and recipients, as well as partially automates order payments and reciprocal
payments with couriers.
Having carefully analyzed customer needs and their requests for technical support, it is
possible to create a convenient app to automate a large part of the tasks in this direction. It
will automatically accept applications, provide answers to frequently asked questions, and
enable additional options and services.
The main advantages of using business management software:
organizing all business information in the accessible and user-friendly manner that leads to
the work time saving and increasing productivity;
automating business processes and reducing manual efforts that leads to minimizing
mistakes in documents and errors in the business operations;
collaboration between various business software solutions that enables providing collecting,
managing and controlling the information about various aspects and processes of the
business in one central place;
speeding up the making right business decisions that lead to the company's ability to
complete the business operations much faster and with better quality results;
using accounting software obviate the necessity to have a large accounting department;
getting work done faster and more effectively enables hiring less staff and save on payroll;
storing data on computers enables saving on the cost of the outside file storage and
eliminates purchasing copies and buying typewriters, fax machines, and other office items;
electronic communications, particularly email, enables companies and their clients, vendors,
and business partners to contact and transact business;
saving business resources leads to providing customers with much more affordable products
and service;
cloud business management software enables enhancements of the business calculating;
ability to perform tasks that previously needed to be outsourced makes companies and their
staff more self-sufficient.
Agile
Agile approaches in software development are group of software development methods that
speed up the software development process. Basically, agile development-based
methodology is a different way of managing software projects as opposed to other
traditional software approaches. agile approaches constitute a set of exercises used from
software development, developed by experienced software development practitioners
Agile methods are incremental in which the increments are small, the new software product
produced using agile methods is released and made available to customers in less than three
weeks these methods involve the customer in the entire development process in order to
accommodate their changing requirements during the process. Agile methods also minimize
documentation by using internal communications as opposed to formal meetings with
written documents.
Modularity - this allows the development process to be broken down into specific
Parsimony - agile processes requires few activities that are necessary to mitigate risks
and achieve their goals. By doing so, they enable system developers to finish their
work within an aggressive schedule,
Adaptive - risks that may be exposed during Iteration are adapted by agile processes
the cannot be adapted, the activity may be discarded
Incremental - agile processes builds a system progressively. Each increment is
tested separately
Convergent - this states that all the risks worth attacking are actively attacked at the
same time the system is being delivered in increments. This is done to ensure success
of the system in a rapid format
People oriented - agile approaches are keener on people over the development
process. People are involved during the entire development process
• . Testing is integrated throughout the project lifecycle- test early and often
• Many big organizations have their own standards on quality that have to be met for all
the projects. These are likely to be incompatible with agile methods
• Agile approaches work best with high skilled team members. However, many
organizations have people with low skill levels which may not be effective for agile
processes.
Scrum is the type of Agile framework. It is a framework within which people can address
complex adaptive problem while productivity and creativity of delivering product is at
highest possible values. Scrum uses Iterative process.
Silent features of Scrum are:
Scrum is light-weighted framework
Scrum emphasizes self-organization
Scrum is simple to understand
Lifecycle of Scrum:
Figure 1 07-06-2019
Sprint:
A Sprint is a time-box of one month or less. A new Sprint starts immediately after the
completion of the previous Sprint.
Release:
When the product is completed then it goes to the Release stage.
Sprint Review:
If the product still have some non-achievable features then it will be checked in this stage and
then the product is passed to the Sprint Retrospective stage.
Sprint Retrospective:
In this stage quality or status of the product is checked.
Product Backlog:
According to the prioritize features the product is organized.
Sprint Backlog:
Sprint Backlog is divided into two parts Product assigned features to sprint and Sprint
planning meeting.
Extreme Programming (XP)
Extreme programming (XP) is one of the most important software development framework of
Agile models. It is used to improve software quality and responsive to customer
requirements. The extreme programming model recommends taking the best practices that
have worked well in the past in program development projects to extreme levels.
Good practices needs to practiced extreme programming: Some of the good practices that
have been recognized in the extreme programming model and suggested to maximize their
use are given below:
Code Review: Code review detects and corrects errors efficiently. It suggests
pair programming as coding and reviewing of written code carried out by a pair of
programmers who switch their works between them every hour.
Testing: Testing code helps to remove errors and improves its reliability. XP suggests
test-driven development (TDD) to continually write and execute test cases. In the TDD
approach test cases are written even before any code is written.
Incremental development: Incremental development is very good because customer
feedback is gained and based on this development team come up with new increments
every few days after each iteration.
Simplicity: Simplicity makes it easier to develop good quality code as well as to test
and debug it.
Design: Good quality design is important to develop a good quality software. So,
everybody should design daily.
Integration testing: It helps to identify bugs at the interfaces of different
functionalities. Extreme programming suggests that the developers should achieve
continuous integration by building and performing integration testing several times a
day.
Scrum Roles
Scrum has three roles: Product Owner, Scrum Master and Team
Product Owner -The Product Owner should be a person with vision, authority, and
availability. The Product Owner is responsible for continuously communicating
the
vision and priorities to the development team. At the same time, Product Owners must
be available to answer questions from the team.
Scrum Master - The Scrum Master acts as a facilitator for the Product Owner and the
team. The Scrum Master does not manage the team. The Scrum Master works to
remove any impediments that are obstructing the team from achieving its sprint goals.
This helps the team remain creative and productive while making sure its successes
are visible to the Product Owner.
Team - According to Scrum's founder, "the team is utterly self managing." The
development team is responsible for self organizing to complete work. A Scrum
development team contains about seven fully dedicated members (officially 3-9),
ideally in one team room protected from outside distractions. For software projects, a
typical team includes a mix of software engineers, architects, programmers, analysts,
QA experts, testers, and UI designers. Each sprint, the team is responsible for
determining how it will accomplish the work to be completed. The team has
autonomy and responsibility to meet the goals of the sprint
XP is based on the frequent iteration through which the developers implement User Stories.
User stories are simple and informal statements of the customer about the functionalities
needed. A User story is a conventional description by the user about a feature of the required
system. It does not mention finer details such as the different scenarios that can occur. On the
basis of User stories, the project team proposes Metaphors. Metaphors are a common vision
of how the system would work. The development team may decide to build a Spike for some
feature. A Spike is a very simple program that is constructed to explore the suitability of a
solution being proposed. It can be considered similar to a prototype. Some of the basic
activities that are followed during software development by using XP model are given below:
Coding: The concept of coding which is used in XP model is slightly different from
traditional coding. Here, coding activity includes drawing diagrams (modeling) that will
be transformed into code, scripting a web-based system and choosing among several
alternative solutions.
Testing: XP model gives high importance on testing and considers it be the primary
factor to develop a fault-free software.
Listening: The developers needs to carefully listen to the customers if they have to
develop a good quality software. Sometimes programmers may not have the depth
knowledge of the system to be developed. So, it is desirable for the programmers to
understand properly the functionality of the system and they have to listen to the
customers.
Designing: Without a proper design, a system implementation becomes too complex
and very difficult to understand the solution, thus it makes maintenance expensive. A
good design results elimination of complex dependencies within a system. So, effective
use of suitable design is emphasized.
Feedback: One of the most important aspects of the XP model is to gain feedback to
understand the exact customer needs. Frequent contact with the customer makes the
development effective.
Simplicity: The main principle of the XP model is to develop a simple system that
will work efficiently in present time, rather than trying to build something that would
take time and it may never be used. It focuses on some specific features that are
immediately needed, rather than engaging time and effort on speculations of future
requirements.
Applications of Extreme Programming (XP): Some of the projects that are suitable to
develop using XP model are given below:
Small projects: XP model is very useful in small projects consisting of small
teams as face to face meeting is easier to achieve.
Projects involving new technology or Research projects: This type of projects
face changing of requirements rapidly and technical problems. So XP model is used to
complete this type of projects.
Lifecycle
We have seen so far that React web apps are actually a collection of independent
components which run according to the interactions made with them. Every React
Component has a lifecycle of its own, lifecycle of a component can be defined as the series
of methods that are invoked in different stages of the component’s existence. The definition
is pretty straightforward but what do we mean by different stages? A React Component can
go through four stages of its life as follows.
Initialization: This is the stage where the component is constructed with the given
Props and default state. This is done in the constructor of a Component Class.
Mounting: Mounting is the stage of rendering the JSX returned by the render method
itself.
Updating: Updating is the stage when the state of a component is updated and the
application is repainted.
Unmounting: As the name suggests Unmounting is the final step of the component
lifecycle where the component is removed from the page.
React provides the developers a set of predefined functions that if present is invoked around
specific events in the lifetime of the component. Developers are supposed to override the
functions with desired logic to execute accordingly. We have illustrated the gist in the
following diagram.
Figure 2
Principles are:
• Minimalism is essential
The Scaled Agile Framework (SAF) helps businesses address the significant challenges of
developing and delivering enterprise-class software and systems in the shortest sustainable
lead time SAFE synchronizes alignment, collaboration, and delivery for multiple Agile
teams. Scalable and configurable, SAFe allow each organization to adapt it to its own
business needs. It supports smaller scale solutions employing 50 - 125 practitioners, as well
as complex systems that require thousands of people.
• Visualize and limit reduce batch sizes and manage queue lengths
Disciplined Agile Delivery (DAD) is a people first, learning oriented hybrid agile approach
to IT solution delivery. It has risk value delivery lifecycle is goal driven, is enterprise aware,
and is scalable
Approach
Supporting a robust set of roles
. Being a hybrid. DAD a hybrid approach which extent Scrum with proven strategies
from Agile Modeling (AMP Extreme Programming (XP), Unified Process (UP),
Kanban Lean other method Software Development, Outside In Development (Q)
and several
Being open Disciplined Agile (DA) a a nan proprietary, freely available framework
Supporting several delivery Lifecyle’s DAD extend the construction focused life
cycle of Serum to address the end to end delivery recycle from project initiation all
the way to delivering the solution to its end users
Addressing all aspects of solution delivery DAD includes advice about the techie
practices such as those from extreme Programming (XP) as well as the modeling
documentation, and governance strategies missing from both Scrum and XP.
Kanban
Kanban uses the stages in the software development lifecycle (SDLC) to represent the
different stages in the manufacturing process. The aim is to control and manage the flow of
features (represented by Kanban card) so that the number of features entering the process
matches those being completed
Kanban is an agile methodology that is not necessarily iterative. Processes Nike Scrum have
short iterations which mimic a project lifecycle of a small scale, having a distinct beginning
and end for each iteration, Kanban allows the software be developed in one large
development cycle. Despite this, Kanban is an example of an agile methodology because it
fulfils all twelve of the principles behind the Agile manifesto, because whilst it is not
iterative, it is incremental
Principles
• Start with what you do now Understand current processes as they are actually
practiced and respect existing roles, responsibilities and job titles
Practices
The following practices are activities essential to manage a Kanban system.
Visualize - Kanban systems use mechanism such as a Kanban board to visualize work and
the process it goes through
limit work in progress When you establishments to the amount of work you have in
progress in system and use those limits to guide when to start new items you can smooth out
the flow of work and reduce lead times, Improve quality, and deliver more frequently
Manage flow. The flow of work in a service should maximize value delivery, minimize lead
times and be as predictable as possible. Teams use empirical control through transparency,
inspection and adaption in order to balance these potentially conflicting goals
Make policies explicit Explicit policies help explain a process beyond just the time of
different stages in the workflow. Policies should be sparse, simple, well-defined, visible,
always applied, and readily changeable by the people working on the service
Implement feedback loops- Feedback loops are an essential element in any system looking
to provide evolutionary change The Feedback loops used in Kanban are described in the
Lifecycle section
Strengths weaknesses
Scrum Effective and efficient Employees lack knowledge
communication among team of Scrum lacks engineering
members One of the best practices Simple to
management practices understand but difficult to
Continuous feedback from master Suitable for small
the customers Produces projects
quality product with
customer satisfaction
Measuring the growth and
productivity of the team and
individual is easier with
daily Scrum meetings and
sprint meetings
Extreme programming Quality product with Lack of documentation Poor
customer satisfaction Can architectural structure Less
easily handle unclear and focus on design Pair
changing requirements programming requires
Pair programming and mutual understanding and
continuous integration common skillset between
improves productivity two programmers
Works well with simple
and small scale projects
Strengths: Weaknesses:
Future Improvements & Assessor Comment:
Assessor: Signature:
Date: / /