Concise Overview of Development in Enterprises
Wednesday, November 18, 2020
Roles and Responsibilities
My responsibilities as a developer intern was to write a well designed, testable, efficient code by using best software development practices. As an intern I had to create a website layout/user interface by using standard practices on Wix using Corvid and to integrate data from various back-end services and databases.
I had to gather and refine specifications and requirements based on technical needs and also to create and maintain software documentation.
I was responsible for maintaining, expanding, and scaling the site.
The biggest responsibilities as a development intern was to stay plugged into emerging technologies/industry trends and apply them into operations and activities.
The internship mode was Work From Home and totally virtual. There were flexible working hours. All the assigned work and projects were done according to the planned timetable.
The duration of internship was 3 months starting from 17-Oct-2020 to 17-Nov-2020. There were 5 total working days in a week and 6-6:30 hours of working per day.
There were two types of working timings:
I had selected the India timings for which I had to work on weekends and on three weekdays namely Tuesday, Wednesday and Thursday.
For the weekdays the working timing was from 7:00 pm to 11:00 pm + any 2 hours in a day and for the weekends it was from 12:00pm to 6:00pm.
Description of Internship Work
Platform : Cloud-based web development services
Description : It allows users to create HTML5 websites and mobile sites through the use of online drag and drop tools. It provides customizable website templates and a drag-and-drop HTML5 website builder that includes apps, graphics, image galleries, fonts, vectors, animations and other options.their web sites from scratch.
Intuitive designing and editing
Platform : Open development platform
Corvid’s APIs are used to add custom functionality and interactions in Wix's visual builder.
Corvid removes multiple obstacles from web development and lets developers focus on code in both the front-end and backend and the functionality of the applications on the WIX platform.
Powerful Coding tools
Platform : Free and open-source IDE for R
It includes a console, syntax-highlighting editor that supports direct code execution, as well as tools for plotting, history, debugging and workspace management.
integrates the tools used with R into a single environment
supports interactive graphics with Shiny and ggvis.
4. Anaconda Platform
Platform : Free and open-source data-science platform
Anaconda is a free and open-source distribution of the Python and R programming languages for scientific computing, that aims to simplify package management and deployment. The distribution includes data-science packages suitable for Windows, Linux, and macOS. It has an open-source package management system called Conda, which makes it easy to install or update packages and create or load environments. It has machine learning libraries like TensorFlow, Scikit-learn and Theano, data science libraries like pandas, NumPy and Dask. It also has visualization libraries like Bokeh, Datashader, matplotlib and Holoviews.
Anaconda has Jupyter Notebook, a shareable notebook that combines live code, visualizations and text.
High Performance Scale Up
5. Google Sheets
Platform : Online spreadsheet app
It lets users create and format spreadsheets and simultaneously work with other people. The features that make Google Sheets so successful are available through the Sheets API. With the API, the code can be accessed and can update spreadsheets.
Import, export and format data
Control conditional formatting
Build and edit charts
Configure data validation
Create and update named and protected ranges
Add and adjust filtered views
Create and manipulate pivot tables.
Development involves the tools, methodologies and processes necessary to create software, it also concerns the code and algorithms that physicists, device fabricators, service scientists and hardware makers need to write in the course of doing their work. That is, development also involves the activities of skilled individuals who develop project-specific software code even though they themselves are not primarily software developers.
Software development refers to a set of computer science activities dedicated to the process of creating, designing, deploying and supporting software. The process to develop software includes identifying a need, designing the program, and testing it for issues.
Software itself is the set of instructions or programs that tell a computer what to do. It is independent of hardware and makes computers programmable. There are three basic types:
System software to provide core functions such as operating systems, disk management, utilities, hardware management and other operational necessities.
Programming software to give programmers tools such as text editors, compilers, linkers, debuggers and other tools to create code.
Application software (applications or apps) to help users perform tasks. Office productivity suites, data management software, media players and security programs are examples. Applications also refers to web and mobile applications.
Embedded systems software is used to control machines and devices not typically considered computers — telecommunications networks, cars, industrial robots and more. These devices, and their software, can be connected as part of the Internet of Things (IoT).
Software development is primarily conducted by programmers, software engineers and software developers. These roles interact and overlap, and the dynamics between them vary greatly across development departments and communities.
Programmers, or coders, write source code to program computers for specific tasks like merging databases, processing online orders, routing communications, conducting searches or displaying text and graphics. Programmers typically interpret instructions from software developers and engineers and use programming languages like C++ or Java to carry them out.
Software engineers apply engineering principles to build software and systems to solve problems. They use modeling language and other tools to devise solutions that can often be applied to problems in a general way, as opposed to merely solving for a specific instance or client. Software engineering solutions adhere to the scientific method and must work in the real world, as with bridges or elevators.
Software developers have a less formal role than engineers and can be closely involved with specific project areas — including writing code. At the same time, they drive the overall software development lifecycle including working across functional teams to transform requirements into features, managing development teams and processes, and conducting software testing and maintenance.
Types of Software Development
The different types of software development are:
Web development refers to building websites and deploying on the web. Web development requires use of scripting languages both at the server end as well as at client end.
Web development today is exploding due to the new web technologies and Application Programming Interfaces (APIs) which let websites “plug in” to other useful features. The Web can deliver ‘apps’ that feel native, because browsers now are so much more than a URL bar and an Ad-blocker these days.
Data Science is a blend of various tools, algorithms, and machine learning principles with the goal to discover hidden patterns from the raw data.
Data Science is primarily used to make decisions and predictions making use of predictive causal analytics, prescriptive analytics (predictive plus decision science) and machine learning. Data science is related to data mining, machine learning and big data.
The tools used are R, Hadoop, BigML, Python, SQL Analysis services.
Application development is the process of gathering business requirements, designing, prototyping, coding, testing and ongoing improvements and debugging of software that can assist the daily functionalities of the user or business.. Application development defines the process of how the application is made.
These are standard applications that perform their duties on traditional desktop operating systems, such as Windows, Mac, or Linux. It’s often considered a programme, executed on demand by the user, that opens its interface in the confines of the OS that it’s running in.
The tools used are: Java, C/C++,C#, Python.
Back-end development is the work that goes on behind the scenes to make the front-end work properly.
The back-end, or “server side”, of a website or application is where the data is stored and it usually consists of three parts: a server, an application, and a database.
It compasses writing APIs, creating libraries, or working with components of systems that don’t have user interfaces or even systems of scientific programming.
Tools used are: Python, Java, C/C++, SQL, Ruby, MongoDB, Oracle.
Cloud computing is used to plug into infrastructure via the internet, and use computing resources without installing and maintaining them on-premises.
It includes some form of virtualized IT infrastructure such as servers, operating system software, networking, and other infrastructure that’s abstracted, using special software, so that it can be pooled and divided irrespective of physical hardware boundaries and hosted at a remote data center managed by a cloud services provider (or CSP).
Application of Cloud Computing:
Storage: Cloud Computing helps to store data at a secure location and access it from any device easily. It has brought so much ease of accessibility and also keeps data secure away from hacker’s reach as cracking into cloud locations is comparatively more complex than hacking a system.
Virtual Reality: Virtual Reality is possible because cloud storage made it possible to access data from any location or device, without worrying about the underlying hardware.
Testing and Deployment: Cloud Computing provides organizations a flexible environment for accessing data which allows the testing and development phase to operate smoothly.
Data Backup: Cloud Computing gives leverage to secure a backup of data. With the help of cloud computing technology, one can secure virtual space which can be used for storing pictures, audio files, videos, documents or any sort of data. Cloud computing not just offers location to store data but also keeps it immune from any potential threats.
Evolving Software Development
New technologies, development methods and customer preferences are the key indicators regarding where to focus the development skills. Staying on top of new technology trends is a great way to future-proof the software development skills, ensuring the abilities don’t age.
Some of the today’s most popular software development trends are:
AI is one of the fascinating and universal fields of Computer science which has a great scope in future. AI holds a tendency to cause a machine to work as a human.
It is a branch of computer science in which we can create intelligent machines with programmed algorithms which can work with its own intelligence, which can behave like humans, think like humans, and be able to make decisions.
Goals of Artificial Intelligence:
To Create Expert Systems which exhibit intelligent behavior, learn, demonstrate, explain, and advise its users.
To Implement Human Intelligence in Machines that understand, think, learn, and behave like humans.
A blockchain is a time-stamped series of immutable records of data that is managed by a cluster of computers not owned by any single entity. Each of these blocks of data (i.e. block) is secured and bound to each other using cryptographic principles (i.e. chain). The blockchain network has no central authority. The information in it is open for anyone and everyone to see. Hence, anything that is built on the blockchain is by its very nature transparent and everyone involved is accountable for their actions.
Applications of Blockchain:
Payments and Transfers
Internet of Things (IoT):
The Internet of Things is a network of physical objects that use sensors and APIs to connect and exchange data over the Internet. The Internet of Things includes a wide variety of “smart” devices, from industrial machines that transmit data about the production process to sensors that track information about the human body.
The IoT depends on a whole host of technologies – such as application programming interfaces (APIs) that connect devices to the Internet. Other key IoT technologies are Big Data management tools, predictive analytics, AI and machine learning, the cloud, and radio-frequency identification (RFID).
Applications of IoT:
The ability of IoT to provide sensor information as well as enable device-to-device communication is driving a broad set of applications. The following are some of the most popular applications and what they do:
Create new efficiencies in manufacturing through machine monitoring and product-quality monitoring.
Improve the tracking and “ring-fencing” of physical assets.
Use wearables to monitor human health analytics and environmental conditions.
Drive efficiencies and new possibilities in existing processes.
Enable business process changes.
Cybersecurity is the practice of protecting systems, networks, and programs from digital attacks.
A successful cybersecurity approach has multiple layers of protection spread across the computers, networks, programs, or data that one intends to keep safe. In an organization, the people, processes, and technology must all complement one another to create an effective defense from cyber attacks.
Why is cybersecurity important?
In today’s connected world, everyone benefits from advanced cyberdefense programs. At an individual level, a cybersecurity attack can result in everything from identity theft, to extortion attempts, to the loss of important data like family photos. Everyone relies on critical infrastructure like power plants, hospitals, and financial service companies. Securing these and other organizations is essential to keeping our society functioning.
Progressive Web Apps:
Progressive Web Apps are traditional web applications that are enhanced with modern web technologies, allowing them to provide a more app-like experience. The “progressive” part means they’re “progressively enhanced” with modern web features, which means they’ll also work in older browsers that don’t support the new features, but will work better and with more features in modern browsers.
Progressive web apps are the tech industry’s latest attempt to improve cross-platform performance across web and mobile.
Benefits of Progressive Web Apps:
Connectivity Independence: Progressive web applications can work both offline and on low-quality networks.
Full responsiveness and browser compatibility: Progressive web apps are built according to progressive enhancement principles. So, it works with all browsers and is compatible with any device, regardless of screen size and other specifications.
App-like interface: Progressive web apps mimic navigation and interactions of native apps.
Self-updates: Able to update themselves automatically, apps stay fresh.
Safety: These apps are served through HTTPS, so unauthorized users can’t access their content.
Discoverability and easy installation: Progressive web apps are not distributed via app stores. These apps can be shared through a URL instead so they’re easily found. The installation is simple and entails visiting a site and adding it to a device home screen.
A low-code development platform is a software that provides a development environment used to create application software through graphical user interfaces and configuration instead of traditional hand-coded computer programming. Low-code development platforms provide graphical tools for designing an application or system, along with its required inputs, outputs, business logic, and other aspects.
Benefits of Low-Code Development:
Improve developer productivity with low-code attributes, such as a development toolkit (based on developer experience), a visual user interface, reusable components, and more.
Build maintainable solutions that are easy to scale on cloud-native architecture.
Deliver continuous improvements to end-users with engaging web, mobile, conversational, or immersive experiences.
Develop a variety of solutions ranging from process automation apps to mission-critical systems modernization, without incurring heavy costs.
Stay agile to respond quickly to changing business and customer needs
The Development and Design process of Software
Development and Design is one of the important stages of the software building process. Following are the processes evolved in the software development and designing.
Defining and Understanding the problem: Understanding the requirements, constraints, purposes and target audience.
Planning and Designing the solution: A conceptual model, wireframe, layout and structures of the software system is created. The project is broken into modules or subcomponents.
Implementing and Developing the solution: This step is also known as the programming phase. The implementation of software design starts in terms of writing program code in the suitable programming language and developing error-free executable programs efficiently.
Testing and Evaluating the solution: Evaluation of the performance of software, debugging of the system and validating basic functions are done in testing and evaluating process.
Deploying: It involves the verification of input/output parameters. Debugging is a static process where inputs are supplied, the system is run, and the outputs are compared against the expected results.
Maintenance: It is the process of correcting mistakes, adding new features, optimizing for execution speed or program size, porting to new computers or operating systems, and reconfiguring the system to solve a similar problem.
The whole process follows a cycle called Software Development Life Cycle.
Softwares used in different Sectors
Different softwares are available to fulfill the requirement of different working sectors which increase their workflow and provide a better solution to individuals, institutions and organisations.
Platform : Mobile Application Development Software
It is Google’s UI toolkit that enables to create applications for mobile, web, and desktop from a single codebase.
Platform : Mobile Application Development Software
It supports apps for various platforms, including iOS, Android, desktop (Windows and Linux), and counting. Using a single codebase, an application for different operating systems can be created.
Platform : Open-source content management system software
Software for creating blogs and websites
Platform : Web Development Software
Platform : Web Development environment
It builds, tests, and discovers front-end code and debug. It's a friendly development environment for front-end designers.
Platform : Software Development tools and platforms.
It contains documentation on using Google developer tools and APIs, including discussion groups and blogs for developers using Google's developer products.
AWS Developer Center
Platform : Software Development Kit and Tools
The AWS Developer Center is the homepage of Aws developer community. The AWS Developer Tools are designed to build software like Amazon. They facilitate practices such as continuous delivery and infrastructure as code for serverless, containers, and Amazon EC2.
Platform : Cloud Computing Services
It helps to build, debug and manage cloud applications using any platforms and languages using a range of SDKs. It has full-featured IDEs and editors with advanced debugging capabilities for development.
Platform : Software Development Tool
It develops web, mobile, and desktop
Platform : Interface Design Tool
It has an uncluttered and intuitive interface that makes it easy to create beautiful designs quickly. It has a comprehensive ecosystem of plugins and integrations that bring added power and make it simple to integrate.
Platform : Graphic Design Software
It is a platform for designing creative projects, photo editing and compositing to digital painting, animation, and graphic design.
Platform : Graphic Design Software
It is a tool for creating graphics for social media posts, flyers, or business cards.
Platform : Graphic Design Software
Illustrator is for making logos, sketches, typography, icons and complex illustrations for videos.
Platform : Graphic Design Software
It is a tool for vector and graphics designing, sketching and making illustrations.
Platform : Graphic Design Software
It is a vector graphics editor.
Google Marketing Platform
It is a unified advertising and analytics platform that enables stronger collaboration for marketing teams by building on existing integrations between DoubleClick and the Google Analytics 360 Suite.
Adobe Marketing Cloud
Adobe Marketing Cloud,includes Marketo Engagement Platform, which allows to manage, personalize, optimize, and orchestrate cross-channel campaigns across B2B and B2C use cases.
Pardot is a software as a service (SaaS) marketing automation platform by SalesForce offering email automation, targeted email campaigns and lead management for B2B sales and marketing organizations.
ZoomInfo is a go-to-market intelligence platform for B2B sales and marketing teams. The integrated cloud-based platform provides sellers and marketers with comprehensive information to help and find new potential customers.
Overview of Internship Experience
On the whole the experience of working as an intern at A Plan by Consultants was great. I got a lot to learn and gained experience. The internship helped me to gain important knowledge on development, industry and work environment.
Participating in the team meetings and discussing the threats helped me attain the faith to develop a never give up attitude. Related to the work I learned about the R language, Python, Wix Website and Corvid platform and about Google Developers.
Furthermore I have learned about some research aspects during this internship.
The internship was also good to find out our strengths and weaknesses . This helps me to know what skills and knowledge I have to improve in the coming time. This internship has given me new insights and motivation.
The above report emphasises about tools and softwares used during this internship, software development, its type and different softwares used in different sectors.
The tools used were:
Wix Websites for web development and designing .
Corvid for adding custom functionality and interactions in Wix's visual builder using coding.
Google Sheets for the creating and analysing data.
RStudio for statistical computing and graphics.
Anaconda for machine learning applications and data processing using Python and R programming.
It was a wonderful learning experience for me while working on this report. This internship took me through the various phases of development and designing and gave me real insight into the world of software engineering. The joy of working and the thrill involved while tackling the various problems and challenges gave me a feel of the developers’ industry.
Table 1: Tools used during Internship
Table 2:Development Softwares and solution provided
Table 3:Designing Softwares and solution provided
Table 4: Marketing Softwares and solution provided
IDE : Integrated Development Environment
SDE : Software Development Environment
API : Application Programming Interface
IoT : Internet of Things
CSP : Cloud Service Provider
AI : Artificial Intelligence
UI : User Interface
AWS : Amazon Web Service
RFID : Radio-Frequency Identification
SaaS : Software as a Service
B2B : Business-to-Business
Name: Vinamrata Rani
College Name: Bakhtiyarpur College of Engineering,Patna, India
Vinamarta is pursuing Bachelor of Technology in Computer Science and Engineering at Bakhtiyarpur College of Engineering, Patna.
She has great interest in coding and open source projects. She likes to explore new software platforms and technology.
Designation and Postion: Duration of Internship: Date (From-to): Contributor's Description: Profile Link: