ChatGPT'e Sorduk: Yazılımcılar, proje yöneticisini nasıl görüyorlar?
class ProjectManager:
def __init__(self, project_name, stakeholders):
self.project_name = project_name
self.stakeholders = stakeholders
self.tasks = []
self.resources = {}
self.timeline = {}
self.risks = []
self.documentation = {}
def gather_requirements(self):
requirements = {stakeholder: input(f"Enter requirements from {stakeholder}: ") for stakeholder in self.stakeholders}
self.documentation['requirements'] = requirements
def prioritize_tasks(self):
self.tasks.sort(key=lambda x: x['priority'])
def delegate_tasks(self, developers):
for task in self.tasks:
suitable_developer = self.find_suitable_developer(developers, task)
if suitable_developer:
suitable_developer.assign_task(task)
def manage_resources(self, resources):
self.resources = resources
def set_timeline(self, timeline):
self.timeline = timeline
def track_progress(self):
progress = {task['name']: task['status'] for task in self.tasks}
return progress
def identify_risks(self):
self.risks = [risk for risk in input("Enter potential risks: ").split(",")]
def develop_mitigation_strategies(self):
self.documentation['mitigation_strategies'] = {risk: input(f"Enter mitigation strategy for {risk}: ") for risk in self.risks}
def facilitate_communication(self, message):
for stakeholder in self.stakeholders:
print(f"Communicating to {stakeholder}: {message}")
def ensure_quality(self):
for task in self.tasks:
task['quality_checked'] = True
def resolve_conflicts(self, conflict):
print(f"Resolving conflict: {conflict}")
def maintain_documentation(self, doc_type, content):
self.documentation[doc_type] = content
def support_and_motivate(self, developer):
print(f"Supporting and motivating {developer.name}")
def find_suitable_developer(self, developers, task):
# Dummy implementation to find suitable developer
for developer in developers:
if task['skill_required'] in developer.skills:
return developer
return None
class Developer:
def __init__(self, name, skills):
self.name = name
self.skills = skills
self.tasks = []
def assign_task(self, task):
self.tasks.append(task)
print(f"Assigned task '{task['name']}' to {self.name}")
# Example usage
stakeholders = ["Client", "Upper Management", "Marketing"]
pm = ProjectManager("Project X", stakeholders)
developers = [Developer("Alice", ["Python", "Django"]), Developer("Bob", ["JavaScript", "React"])]
pm.gather_requirements()
pm.tasks = [
{"name": "Build API", "priority": 1, "skill_required": "Python", "status": "Pending"},
{"name": "Develop Frontend", "priority": 2, "skill_required": "JavaScript", "status": "Pending"}
]
pm.prioritize_tasks()
pm.delegate_tasks(developers)
pm.manage_resources({"budget": 50000, "tools": ["GitHub", "Jira"]})
pm.set_timeline({"start": "2024-06-01", "end": "2024-12-01"})
pm.track_progress()
pm.identify_risks()
pm.develop_mitigation_strategies()
pm.facilitate_communication("Project kickoff meeting at 10 AM")
pm.ensure_quality()
pm.resolve_conflicts("API not integrating with frontend")
pm.maintain_documentation("progress_report", "50% tasks completed")
pm.support_and_motivate(developers[0])
Comments