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