Sunday, September 18, 2016

What is the difference between method and methodology?

It is quite common for professionals in project management to use ‘method’ and ‘methodology’ interchangeably. Is this correct?
If not what are the differences?

It is common that some practitioners confuse the meaning of these two terms, method, and methodology and use them interchangeably.
In general, a method is “a particular procedure for accomplishing or approaching something”[1], whereas a methodology is “a system of methods used in a particular area of study or activity.”[2] In other words, a method is a specific way that is set or fixed, whereas a methodology is a wider term, “a system of methods”.
Further, a method is different from a framework since a method means there is a certain way of doing something; like systematic process, a step by step approach. Whereas a framework is a general guideline as defined earlier.
A common project management method may follow a project life cycle or a similar approach. For example, Waterfall is a method with a project life cycle consisting of a few phases in sequence. SDLC refers to a Software Development Life Cycle with its own phases. Some practitioners refer to ‘Agile’ as a method but it is an approach, more a framework, whereas scrum might offer a specific method for software development projects.




For example, managing a ‘small’ real estate development project can follow a certain tailored method. Whereas managing a large and complex real estate development project may follow another method. These two methods could have similar features but each is tailored to a different level of size and complexity.

It is important to mention that it is not common to hear, or read, about specific project management methods in the professional community. This is due to the fact that methods are often custom-built[3] for an organization; they are internal resources making them proprietary information.

[1] Oxford Online Dictionaries (http://oxforddictionaries.com/)
[2] Same reference
[3] Tailored is another common term.



Copied from : http://www.sukad.com/

Sunday, May 20, 2012

VistA in Jordan | Campaign for NHS VistA

Jordan’s health system, like most others in the world, is facing considerable pressure to improve health quality, accessibility and outcomes, while striving to reduce costs.
Particular priorities in Jordan include improving patient safety and medication management, as well as reducing waste in areas such as laboratory tests and imaging.

For more details VistA in Jordan

Thursday, April 12, 2012

.Net vs. Java ?!?!


As most of programmers and developers looking to know what are the differences between .NET & JAVA. I was looking to find which one is better & WHY???!!
I read a lot of articles and discussions talking about this interesting issue, which most of JAVA, .Net programmers and fresh graduate programmers looking also.
So, I will take this initiative to starting this comparison here...

It will be as a reference for me, and I will add any new feedbacks, opinions, point of views from other experts. I will be happy to see if this discussion in the future has a lot of opinions and inputs from persons that have experience in both Java & .Net.

As I have a good experience in JAVA and a little .Net technology experience, I always have this opinion:
"If you have to choose between both, go with Server-Side as Java, and GUI/Client side as .NET".
I've been using JAVA for like 5 years. I love it. But if necessary I can and should switch to any other technology if necessary.
Hint:
Before any details, I would like to say that .Net is a framework and Java is a programming language, so this discussion talking about full technology not only programming language and not only framework.
Now, let's discuss this issue in more details, it is a huge, has many respects and criteria that should mention and know:
  1. Market: Sometimes market affects when the majority of market prefers .NET you can't force clients to buy Java Software or vice versa.
  2. Company: Company policies and the product that company has experience with affects also. for example one company uses both Java and .Net in one integrated system, but other company uses JAVA because they have their own product.
  3. Cost: .NET is a framework you can download it from web, you can develop .NET application using mono under ubuntu-linux, but if we mean the Environment so IBM WebSphere and Oracle Fusion middle ware are more expensive than .NET.
  4. Cross platform: Both are cross platform. Java is cross-platform, and ASP.Net has always been cross-platform on the client end, with the advent of Silverlight (Mono). but I don't think it's a good idea to invest in a technology already declared to be obsolete. Some people say: "Mono is not supported anymore as of few months ago. It was promising idea, but budget cuts made the developers be re-assigned" and it ain't stable enough
... & a lot of things that hope to mention later...

Conclusion:
I conclude that strictly favoring one technology without thoroughly exploring others is a sign of immaturity as a developer. That said, it seems clear that I should explore other technology in more detail. There is no such thing as a bad platform, just platforms that are unfit for certain circumstances.

Tuesday, March 27, 2012

Inheritance and the Power of Abstraction

Programming is an exercise in abstraction. If a program is intended to solve some problem, we must first be able to model this problem in an abstract way, in order to express it in a programming language. Only after the problem is modeled the solution can be built.
An algorithm can be seen as an abstract solution for a category of problems. For example, the same sorting algorithms can be used to sort anything: numbers, names or dates.
Thus, we can talk about levels of abstraction: In the first level, we have the problem of sorting a list of values, and we need to abstract this problem in order to write a solution (a program) for it. In a higher level of abstraction, we are able to understand that the solution is independent of the type of values being sorted, and then we can create a sorting algorithm. When we create an algorithm, we are generalizing the solution.
Design Patterns are another example of abstractions. In this case, experienced software developers were able to identify recurring designs in the systems they have built, express these designs in an abstract way, and classify them according to the scenarios in which they should be used. When a programmer decides to apply a pattern, he needs to adapt the abstract design to the entities in his specific system. When we use a design pattern, we are specializing an abstract design.
Therefore, the logic of abstraction can be used in both directions:
  • Generalization: Creating a more abstract solution by ignoring details.
  • Specialization: Creating a less abstract solution by adding details.
In object-oriented programming, abstraction is naturally expressed by inheritance. In a well-structured class hierarchy, each superclass is a generalization of its subclasses, and each subclass is a specialization of its superclass.
Sometimes we start with a set of concrete classes and then we understand that they have something in common, despite their differences. In this case we abstract their properties, preserving the shared ones and removing the specific ones, and the result is a superclass that generalizes all the previous classes.
In other situations we start with a single concrete class and then understand that there are several possible ways to extend its functionality. In this case we specialize the initial class by creating new concrete subclasses, each with its own properties and behavior, but all of them sharing the functionality defined in the superclass.
Without a mechanism such as inheritance we would be severely limited in our capacity to model a problem and its solution. Programming languages without inheritance lack expressive power.
Accordingly, programmers that don’t know how to make good use of inheritance are less effective. Invest your time in mastering the correct usage of abstraction, and you will get very concrete quality improvements!