Software Testing Fundamentals

Software Testing is vital for any software development life cycle, it is fundamental to ensure the software quality and to have a workable functional software at the end of the project.

“Testing is any activity aimed at evaluating an attribute or capability of a program or system and determining that it meets its required results” Bill Hetzel, 1988

The main motive for the testing is to ensure that all functionalities are working correctly as per the requirements. It is not only that this is the basic purpose of testing, while It is important to test how to break the system, how to simulate the abuse of the system by the quality team before someone else does that for you and it will be a disaster at this time.

Read more

Advertisements

Stakeholders Management, WHAT, WHY, and HOW?

Each one of us is surrounded by people, for example, families, friends, coworkers, or clients. These people are affecting our lives in a positive or a negative way that shapes our personality as well. This kind of relationship with people needs a proper communication and management since this communication takes a big percentage of our life. Some studies point that we spend an average of 70% of our day listening to others and an average of 30% speaking to them.

Similarly, strategic planning, architecture, project management, and other fields are powered by people, people who envision, plan, analyze, design, manage, execute, operate, …etc. Communication with those kinds of people should be managed effectively to ensure that every person not only informed but also involved and contributing to the process whatever it is. We mainly aim to those people as the stakeholders.

In this article, we will discuss who are the stakeholders, and why managing them is important, and how we should do that.

Read more

The Waterfall Model, a different perspective

What is Waterfall Model?

It is mostly known as the traditional software development process model, widely used until now, and the most popular SDLC model and the one you should avoid to use. Moreover, it was the first introduced presentation of the software lifecycle.

You can read this Wikipedia page to know the waterfall model history.

The Waterfall Model is a linear sequential flow. In which progress is seen as flowing steadily downwards (like a waterfall) through the phases of software implementation. This means that any phase in the development process begins only if the previous phase is complete. The waterfall approach does not define the process to go back to the previous phase to handle changes in requirement.

In this article, we will discuss the advantages and disadvantages of the waterfall, should we avoid it? when to use it? and the waterfall model pitfall, and why I see it as the father of the SDLC models.

Read more

The successful failure of the Software Projects

The IT systems and applications are everywhere now, from simple to complex systems to run basic data entry to control autonomous cars and autonomous planes and more complicated systems.

Unfortunately, after a lot of research in software process models and project management frameworks, Software and IT projects still have a very high failure rate. According to a study has been made by Mckinsey at 2012

On average, large IT projects run 45% over budget and 7% over time while delivering 56% less value than predicted. That’s beside the common issues of deliverable quality of final software product according to specifications.

Another study from Mckinsey at 2014 regarding how to achieve success in large, complex IT projects.

Read more

Why Enterprise Architecture?

The Enterprise Architecture concept has been introduced since 1960 by Zachman. Although it is still not widely introduced for many organizations, It becomes an important topic in Information Technology community and many organizations are trying to understand how it is important to have Enterprise Architecture capability within the organization.

In this article, I will try to illustrate what is Enterprise Architecture, why it is important, and what are the existing practices for that? And how you can start?

Read more

Quality Attributes, measurements, and implementation strategies

The system should be easy to use.
The system should be flexible and scalable.
The system should be secured.
….
….
The system should be portable.

Did you read any requirements document and found one of the requirements statement mentioned above? Then, you started to think, what does it mean to make the software ease of use, how can I make that feasible, if I implemented that feature would the software became more usable? would it be acceptable from the customer? What are the metrics and acceptance criteria for that? How to transform these intangible requirements into something tangible can be implemented and measured.

Read more

Digital Transformation – Just another thought

In the last couple of years, the fancy and sexy terminology the “Digital Transformation” has been used widely throughout most of the industries and become a trendy word. Over the past decade, we heard other similar words, for example, Digitizations, Information Era, Information Age, Digital Society, Information Society, Digital Business and more and more.

In my perspective, I see Digital Transformation as another marketing terminology more than a new science or knowledge. Read more