Feeds:
Posts
Comments

Archive for the ‘Project Lifecycle’ Category

Stakeholder in a project means the parties which are included in developing a project. As we know there are many stakeholders here, like project owner, PM, analyst, developer, tester, management, etc. Each stakeholder has their own role in the project. I’ll try explaining things here. See, I try to explaining things based on my own experience, and this article also one of them. If you see anything wrong about this article, please let me know so I can fix it. Thanks before~

Okay, let me divide stakeholder of IT project like following:

1. Developer team

     As the name, developer team is the stakeholder team which build the project to be an existing application. Developer team usually consists of PM, analyst, developer, tester, and support. Not all developer team has complete member, it will depend on the scale of the project and also depend on the budget of the project. We can call the developer team as the bottom line of the stakeholder, because they will build the application using programming language and etc.

2. Bridge team

     Bridge team usually consist of consultant and a representation from organization to manage the project, This representation will have role to be the bridge between the managerial and client team. While consultant will be the bridge between client team and developer team. Bridge team will fully responsible in opening and closing project phase.

3. Client team

      Client team usually consist of PIC of client who represents the client as a whole. Client team can have more than one person to conduct the communication with developer team and bridge team.

4. Managerial team

        Managerial team consists of managerial people from developer team and from client team. These managerial people mostly will only involved in the opening and closing of the project. In the middle of developing the application, managerial team will be the one who monitor the development.

5. User team

         User team is team who will use the application in the end, also called by end user. Usually user team is involved in gathering the requirement and testing the application.

I think that’s all for now about stakeholder. Share your thought here~?

Thanks~

Read Full Post »

I just finished writing about SDLC and RUP. Before forgetting things which I always tend to do, I should write about the difference between the two terms. I won’t explain the definition of each terms anymore here, so please check out the definition of each terms directly to related article.

  1. SDLC is a software life cycle, while RUP is one of the method to develop software. So basically, in RUP there will be SDLC phases.
  2. To implement SDLC, there will be many methodology used. They are waterfall, spiral, iteration, W method, V method, RUP. So basically, we can use RUP to implement SDLC.
  3. There is 7 main phases in SDLC, while in RUP there is only 4 main phases.
Well, I think it’s quite clear though about the difference between both terms. I don’t know whether I can compare both of them anymore because they are totally different. I feel stupid here~ >< But I still want to share this article, because it’s possible for some people out there who still also wonder what the difference between the two. Well, I’ll try comparing methodology to build an application later then~ I should learn more..
Hope this article can be useful for all of us though, so thanks a lot for reading~

Read Full Post »

Well I’m back~

After reading some article related with RUP, because actually I learned this thing in my previous university which is why I’ve forgot almost all of it. It’s kind of old though to discuss about RUP at this time but whatever, I also need to know and understand what is RUP actually. I myself often ask, what is exactly RUP, and what the difference exist between RUP and SDLC? Here is the result of my brainstorming today about RUP (hahaha, doesn’t make any sense because I don’t actually read many article about it). Well, I’ll try my best to explain this thing in my language..

Rational Unified Process

RUP phases

RUP, as the acronym states, is a Rational Unified Process which is originally developed by Rational developer as a software development methodology

Based on UML, RUP organizes the development of software into four phases like appears in picture above. Each consisting of one or more executable iterations of the software at that stage of development.

  • inception — where the project’s business case is stated and the team decides if the project is worth doing or if it is even possible. It is important to the process to first formulate the scope of the project and also determine what resources will be needed.
  • elaboration — where the developers take a closer look at the project to determine its architecture foundation and to evaluate the architecture in relation to the project. This stage is important to the RUP because it is here that developers analyze the risks associated with changing the scope of the project or adding new technologies along the way.
  • construction — where the development of the project is completed. The application design is finished and the source code is written. It is in this stage that the software is tested to determine if the project has met its goal laid out in the inception phase.
  • transition — where any fine-tuning is performed. Any final adjustments can be based on user feedback, usability or installation issues.

RUP is similar in concept to Extreme Programming in that only what is useful and required is produced and the development plan is updated throughout the process. Both methods seek to develop a system of best practices in software development.

RUP

RUP represents an iterative approach that is superior for a number of reasons:

  • It lets you take into account changing requirements which despite the best efforts of all project managers are still a reality on just about every project.
  • Integration is not one “big bang” at the end; instead, elements are integrated progressively.
  • Risks are usually discovered or addressed during integration. With the iterative approach, you can mitigate risks earlier.
  • Iterative development provides management with a means of making tactical changes to the product. It allows you to release a product early with reduced functionality to counter a move by a competitor, or to adopt another vendor for a given technology.
  • Iteration facilitates reuse; it is easier to identify common parts as they are partially designed or implemented than to recognize them during planning.
  • When you can correct errors over several iterations, the result is a more robust architecture. Performance bottlenecks are discovered at a time when they can still be addressed, instead of creating panic on the eve of delivery.
  • Developers can learn along the way, and their various abilities and specialties are more fully employed during the entire lifecycle. Testers start testing early, technical writers begin writing early, and so on.
  • The development process itself can be improved and refined along the way. The assessment at the end of an iteration not only looks at the status of the project from a product or schedule perspective,
    but also analyzes what should be changed in the organization and in the process to make it perform better in the next iteration.
For more comprehensive reading about Unified Process itself, you can read it here.
Let’s learn together, should we~
References: many articles from google, wikipedia,

Philippe Kruchten, What Is the Rational Unified Process?
Philippe Kruchten and Kurt Bittner, How to Fail with the Rational Unified Process: Seven Steps to Pain and Suffering

Read Full Post »

I believe that almost all IT people have heard this term at least once in their life. Software Development Life Cycle or usually called SDLC actually describe about the life cycle of an IT application. There will be some phases in building IT application. In each phase, the result from the phase before will be the resource/input for the next phase. There are 7 main phases in SDLC, they are:

  • Requirement Gathering
As the name, in this phase we gather the requirements needed to build the application. How to gather them? There are many options, we can do ask the people in the field directly, gather the data that is usually used, googling, etc. We should gather as many requirements as we can so that later we can have as complete data as possible to do the next phase, that is analysis.
  • Analysis
This phase includes doing the analysis for the application from the data that has been gathered in the first phase. Here we’ll get the specification of the application in detail. What module will be needed, what roles will be exist in using the application, what function needed in each module, etc. 
  • Design
From requirement specification above, we should create the design of the application. Common design method that is used is UML (Unified Modelling Language) and RDD (Relational Database Design). Although the implementation of this phase is often neglected but this phase holds an important meaning in building an application. This phase can define the requirements in detailed way and therefore we can ensure that the requirements that have been defined before are really needed or not. If we make the design first, it’ll make developer build the code easier, they won’t need to think what attribute needed in an entity, what functions needed in each module, etc. A good design will determine that the application will be reliable and easy to maintain.  You should imagine an application without design. A design can act as documentation and the guideline for the development team. If there is bug later, we can also see the design documentation for easier way to fix the bugs.
  • Code
In this phase we build the application by making the code. We should choose the best programming language that is matched with the application requirements. If we build web-based application, almost all programming language has had framework now, so we can choose one of the best suited framework to build the application.  The advantages if we use framework, we don’t need to build our own architecture of the application. We also can use some useful libraries that have been prepared to handle common method needed in application (connect and modify database, authentication method, validation method, etc). Later if we need additional libraries, we can directly search on the framework portal and if available we can download it directly. 
  • Testing 
This phase will be done once the code has been finished. We need to do the testing as a unit/module based testing and as a whole application/requirements based testing and integration testing. Why? Because it is possible that the function which is built separately can be working well in each, but can’t be working at all when they are integrated. There are many tests that can be done once the application has been finished. You can refer here.
  • Deploy
This phase includes deploying the application in client server, or in web server, whichever needed. There will be configuration and final testing activities in this phase.
  • Maintenance 
This phase includes maintain the application that has been deployed. It’s also impossible that there will be bug fixing activities in this phase.
I think that’s all my share about SDLC. I may update this post later. So, hope this post can be useful for us~

Read Full Post »