Monday, December 12, 2016

What is IT Project Management?


From starting of design document to signing off the last project module delivery to the client is all about project management.
In between, a lot of elements play a vital role to complete the entire project, like:-
  1. Platform to use to develop the system
  2. Resources/ People
  3. Design Phase
  4. Dividing and allocating task to right person
  5. Predicting approx timelines
  6. Documentation!
I am not talking about the hierarchy of a project, here I want to discuss about what are the things which project manager needs to  take care of?
Generally we think the real stuff is done by the coder in a software project but that's a false assumption.
 "Quality and on time delivery of the project depends upon how manager manages the team!"

Stages of a project?


In each of this phase there is a vital role of a project manager, what? needs to be find out by the manager itself. It's not that Design phase is for Business analyst, Development phase is for developers, Testing phase is for tester.  It's not about checking that everything is happening on time, managing means lot more than that.

  • Making sure the Business Analyst (BA) has gathered all the specs and prepares the SRS document which gets a sign off from the client.
  • After this, BA rights the use cases (covering all the scenarios).
  • UI Mock-up is prepared & finally signing off from the client as the spec and definition of the system has been locked for this iteration, any new feature request will go in another iteration/ cycle.
  •  Once the above 3 process is done, next starts the Documentation process:-
    • Defining the list of Users, their Roles, and each functionality of the system covering all the scenarios as defined by Use-Cases. (This takes time and patience but quality doesn't come in hurry work)
    • The entire system can be broken into different Modules and Sub-Modules.
    • Categorizing all the functionality under these Modules.
    • Assigning each Module to Resources.
    • Finally, preparing the timeline of each module by discussing it with the Resources (as they are the one who know how much time will it take) and thus locking the overall timeline of the project.
  •  After this only the real time tracking of the project can be done. For us, it works like this:-
    • On time DB schema preparation
    • List of APIs/ Data Flow
    • Data Structure/ Model class definition
    • On behalf of each API, queries or stored proc, if required
    • Using the Mock-up, Front-end design
    • Using the API doc, WS coded or back-end api creation
    • Binding of back-end with front-end
    • Unit tested from developers side 
    • Passed to tester if completed
    • Tester tests it & pass it or iterate it through bug list
    • After all the modules has been tested and passed, deployment!
  • Analysis that we are delayed, which functionality took time (development time or bug fixing time) & who was responsible (not to nag, but for improvement) - this is called soul searching phase 
  • Celebrate with a party!
Generally the manager who has the experience of all the phases of a software development life cycle (SDLC) knows how things work and how it should be managed is preferred, theoretically gaining knowledge of SDLC from an MBA degree will make him an idealistic manager hence resulting to develop an ideal system which practically is impossible, as defined by physics.
Lots of things comes under consideration, which can't be documented or taught, which comes from intuition and that, my friend, is gained through experience.

Goals - long term vs short term rewards

 I guess it has started to be clear now that it's the goal which drives a person or else he or she may fall in the grip of the activitie...