What is Development Operations (DevOps)?

With modern businesses continually looking for ways to streamline their operations, DevOps has become a common approach to software delivery used by development and operation teams to set up, test, deploy, and assess applications.

To help you understand more about this approach, let’s briefly discuss DevOps.

What is DevOps?

DevOps comes from two words- ‘development and operations.’ It describes a set of IT practices, which seeks to have software developers and operations team work together on the same project in a more collaborative and free-flowing way.

In simple words, this is a culture that promotes cooperation between Development and Operations teams in an organization to ensure faster production in an automated, recurring manner.

The approach aims at breaking down traditional barriers that have existed between these two important teams of the IT department in any organization. When deployed smoothly, this approach can help reduce time and friction that occur when deploying new software applications in an organization.

These efforts lead to quicker development cycles, which ultimately save money and time, and give an organization a competitive edge against its rivals with longer, more ridged development cycles.

DevOps helps to increase the speed with which an organization delivers applications and services to customers, thereby competing favorably and actively in the market.

What Is Needed for DevOps to Be Successful Executed?

For an organization to appeal to customers, it must be agile, lean, and swift to respond to dynamic demands in the market.  For this to happen, all stakeholders in the delivery process have to work together.

Development teams, which focus on designing, developing, delivering, and running the software reliably and quickly, need to work with the operations team, which is tasked with the work of identifying and resolving problems in the software as soon as possible.

By having a common approach across software developers and operation teams, an organization will be able to monitor and analyze holdups and scale as quickly as possible. This way, they will be able to deliver and deploy reliable software in a shorter time.

We hope that our simplified guide has enabled you to understand what DevOps is and why it is important in modern organizations.

What are the major phases in Project Management

Project Management Major Phases
Project Management Major Phases

 

Per the Project Management Institute (PMI), there are five phases of project management and if the lifecycle provides a high-level view of the project, the phases are the roadmap to accomplishing it.

Major Phases in Project Management

  1. Initiating
  2. Planning
  3. Executing
  4. Monitoring and Controlling
  5. Closing

Related References

Project Management Institute (PMI)

Learning, Library

What is TQM?

Acronyms, Abbreviations, Terms, And Definitions,totalquality, #totalquality, management, #management, quality, #quality, TQM, #TQM,
Acronyms, Abbreviations, Terms, And Definitions

 

What is TQM?

TQM means “Total Quality Management”.

What is Total Quality Management

Total Quality Management (TQM) is a management philosophy, which promotes total customer satisfaction through continuous improvement of products and processes, enabled by employee empowerment.

Project Management – Data Warehouse Project Plan Template

Project Management
Project Management

 

While I’m no longer a formal Project Manager, from time to time I still have the need to create a project Plan or to help someone else to organize a project plan.  Usually. I find that it is easier to get to a more holistic plan faster, if I have a pattern of essential tasks and milestone to work with.  So, I usually go to a template which I have assembled across time use as an accelerator and/or job aide.   The attached project plan templates are for a common data warehouse project pattern, but by no means is intended to be the end all of project plans; it is just a starter kick, sort of speak.

There are several reasons why projects plan patterns may vary, other than the experience and knowledge of project planner, among them are:

  • The environment migration pattern in use
  • The application stack of the of the environment
  • The tools use to manage the project plan (MS Project, JIRA, OpenProj, etc.)
  • The size and complexity of the project team

Here is project plan mockup around Infosphere Datastage, but should be adaptable to any other ETL application.

XML Version of the Plan

OpenProj Version of the plan

Software Development Life Cycle – What is RAD?

Acronyms, Abbreviations, Terms, And Definitions
Acronyms, Abbreviations, Terms, And Definitions

 

What is RAD?

Rapid Application Development (RAD) is a type of incremental software development methodology, which emphasizes rapid prototyping and iterative delivery, rather than planning. In RAD model the components or major functions are developed in parallel as if they were small relatively independent projects, until integration.

RAD projects are iterative and incremental

RAD projects follow the SDLC iterative and incremental model:

  • During which more than one iteration of the software development cycle may be in progress at the same time
  • In RAD model the functional application modules are developed in parallel, as prototypes, and are integrated to complete the product for faster product delivery.
  • RAD teams are small and comprised of developers, domain experts, customer representatives and other information technology resources working progressively on their component and/or prototype.

What is a software development baseline?

Acronyms, Abbreviations, Terms, And Definitions
Acronyms, Abbreviations, Terms, And Definitions

What, exactly, the definition of a baseline it depends on your role and perspective on the SDLC (Software Development Life Cycle) process.   The baseline concept plays in many aspects of SDLC execution, including project management, configuration management, and others.  Additionally, the baseline concept and practice is applicable to all the SLDC methodologies, including, but not limited to the Agile Model, Waterfall Model, Iterative Model, Spiral Model, and V-Model.

Baseline Definition

A baseline is a reference point in the software development life cycle marked by the completion and formal approval of a set of predefined work products for phase completion. The objective of a baseline is to reduce a project’s vulnerability to uncontrolled change and to provide a point in time set of artifacts for references and recovery, if necessary.    Baselining an artifact (requirements specification matrix, design, code, data model, etc.) moves it into formal change control (usually, in one or more repository tools) at milestone achievement points in the development life cycle. Baselines are also used to identify the essential software, hardware, and configuration assembly components that make up a specific release of a system.

Common Information Integration Testing Phases

Over the years I have seen a lot of patterns for Information integration testing process and these patterns will not be an exhaustive list of patterns a consultant will encounter over the course of a career.

However, the two most common patterns in the testing process are:

The Three Test Phase Pattern

In the three test phase pattern, normally, the environment and testing activities of SIT and SWIT are combined.

The Three Test Phase Pattern
The Three Test Phase Pattern

The Four Test Phase Pattern

In the four test phase pattern, normally, the environment and testing activities of SIT and SWIT are performed separately and, frequently, will have separate environments in the migration path.

The Four Test Phase Pattern
The Four Test Phase Pattern

Testing Phases

Unit Testing:

Testing of individual software components or modules. Typically done by the programmer and not by testers, as it requires detailed knowledge of the internal program design and code. may require developing test driver modules or test harnesses.

 System Integration Testing (SIT):

Integration testing – Testing of integrated modules to verify combined functionality after integration. Modules are typically code modules, individual applications, client and server applications on a network, etc. This type of testing is especially relevant to client/server and distributed systems. Testing performed to expose defects in the interfaces and in the interactions between integrated components or systems. See also component integration testing, system integration testing.

 Software Integration Test (SWIT)

Similar to system testing, involves testing of a complete application environment, including scheduling, in a situation that mimics real-world use, such as interacting with a database, using network communications, or interacting with other hardware, applications, or systems if appropriate.

 User Acceptance Testing (UAT):

Normally, this type of testing is done to verify if the system meets the customer specified requirements. Users or customers do this testing to determine whether to accept the application.  Formal testing with respect to user needs, requirements, and business processes conducted to determine whether or not a system satisfies the acceptance criteria and to enable the user, customers or other authorized entity to determine whether or not to accept the system.

Related References