Wednesday, September 30, 2020

Project Management

 Abraham Lincoln once remarked, “Give me six hours to chop down a tree and I will spend the first four sharpening the ax.” The key idea was to “Get the tools right”. The analogy extends to nearly all walks of life. For a comfortable ride in a luxury car, the first thing we need is a road. For cooking a delicious cuisine in the kitchen, the first thing we need is the right set of utensils. Similarly, for quality software development, we need to create the right software ecosystem.

The term ecosystem here refers to key tools for effective management, monitoring, communication, and collaboration among team members. These are the tools that are needed even before beginning with the first step of the software development life cycle i.e. Requirement analysis. Whenever we start a mega Software Development Project, it is necessary to put following five tools for effective functioning among team members.

1.       Communication system: The communication channels and communication hierarchy should be clearly well established. Generally, large companies use their in-house tools. Smaller companies prefer readymade solutions like Slack, Asana, or Trello for this purpose. Tools like Slack and Asana allows the project manager to assign tasks to team members, take regular updates and follow-ups and enable instant messaging and file exchange through the system.

2.       Document versioning system: Whenever a large team works on a project, a huge number of documents are bound to be generated on a day to day basis. Oftentimes, there are multiple versions of the same document which float around among the employees and management. Hence it is very important to keep a document versioning system or repository like Confluence or JIRA in your project. Confluence is considered effective in managing project plans and effective collaborative document management.

3.       Code repository: Multiple team members would be editing the same file at the same time and a slight mistake can result in production downtime. Hence, it is important to keep a collaborative code repositories like SVN, GitHub, or Perforce which could be very helpful in maintaining code files.

4.       WFH tools: Now with COVID issues, every IT company needs a foolproof work from home solution. This includes a robust VPN server and clients like Cisco or Citrix or Fortigate, Web meeting platform like WebEx or Teams, and Firewall to protect the servers and data from cyber-attacks.

5.       Software services installation suite: Whenever a new member joins the team, he needs his machine ready with required software installation and access rights in 24 hours of time. All these activities are facilitated by a one-stop desk of support team which enables software as a service for the workforce.

Not to mention, these are the five tools that are necessary for bootstrapping a project. During the project lifecycle, there are numerous other tools, platforms, small and big software solutions that are quintessential for the effective performance of the team. For example, Smart Draw for prototyping, Development IDE for development, Bug trackers like JIRA for bug tracking, Deployment engines, Database suites for data management etc. 

Missing these basic tools often costs more to the company at a later stage than the cost of the tool itself. Hence any tactic of saving the money in these tools often results in being “penny wise pound foolish”.

 

No comments:

Post a Comment