Tuesday, May 28, 2013

Tools for Managing Software Development

Software Engineering is a complex process, from modeling and design to code generation, project management, testing, deployment, change management and beyond, tools play a very important role and have become an essential part of managing Software development Process.  Tools allow repetitive, well-defined actions to be automated, reducing the cognitive load on the software engineer who is then free to concentrate on the creative aspects of the process. Tools are often design to support a particular software engineering method thus imposing a specific process. This makes adaptability to a particular tool very difficult since every organization has its own development process. It is either difficult or impossible for companies to move from set processes. We were posed with the same problem. Most of the tools were either ALM based or PLM based and the requirement was to have a single tool to match all our processes. The requirement of the tool was to fulfill the below requirement    

Software Development Tool features / aspects
Requirement Management 
Defect Management and Defect Tracking 
Source Code Management and Control
Code Review Process and Code Coverage 
Design and Case Tool (Use Case etc)
Release and Continuous Integration (Build Automation)
Test Management and Automation 
Quality Checklist 
Management DashBoard 
Resource Planning  and Timesheet Management
Project Management (Planning, Tracking , Cost management )

Breakdown of a typical Software Engineering Methods and Tools


Typical Product Company tools and Status Data Flow 
Holistic Tool across Organization

 The  tools needs to integrate with the available below to make it a holistic tool
Continuous Integration
Link all work items to tangible, working software in the form of builds. This enables teams to measure progress in terms of working software and to identify problems sooner.
Defect Management
Triage defects and include them in the planning process to balance new work and maintenance. Leverage existing automated workflows and defect reporting, while adding the practice of agile project management.


 IDE
View and update work items directly from your IDE. Stories, defects, tasks and tests can be tracked, updated and closed without ever needing to leave the IDE.


Test Management
Monitor the quality of your projects more easily by making the latest test results visible to dashboard. Teams can leverage existing test plans and test reporting, while creating new tests based on current user stories/backlog items.


Automation Testing Tool


Source Code Management
View code changes for a story or defect quickly by integrating tool with your source code manager. This makes it easier to track down the source of a defect and perform code reviews.


Portfolio and Project Management
Transition from traditional tools and project management practices without making everyone take a “leap of faith”. Integrate with  existing project management tools to avoid the pains of duplicate entry.


Requirements Management
Leverage your existing requirements management tool by creating a two-way flow with the took that keeps your requirements documentation synchronized and traceable while adding the practice of agile project management.


Customer Relationship Management
Link support cases to agile work items. This link enables development teams to understand real customer needs and for support desk to track engineering work through to delivery.


Approach Using Open Source
Build a holistic product using open source technologies to meet the requirement. This will need to have a team of developer and leads (Toolsmiths ) who will use open source tools and modify to cater to our needs

Toolsmith 


Continuous Integration


Tracking Tool (Defect/ FR ) With Workflow 


IDE

Requirement Management


Test Management and Testing Tool





0 comments :

Post a Comment