Saturday, November 29, 2014

Agile Development using the right technology and tools

Digital service / system development and managing changes in complex software-based systems requires creativity, agility, and enabling tools. Without preparation for appropriate technology and tools, change is costly and risky.
Agile development is ultimately driven by the suitable state of the art tools and technologies to ensure the holistic objective is met by simply aligning with the Organization structure, goal and process. To ensure effective agile development, choice of right tools based on purpose of the overall product / solution architecture of the business objective plays a critical role.
The discussion revolves around most suitable technology for agile technology and general agreement comes to a point based on wider usages and acceptance globally and at the same time prioritization of competitive non-functional requirement of business goal. In different cases non-functional requirement such as reliability, security, performance, flexibility, operating cost, development cost, customer SLA, customer engagement etc. takes priority among themselves and finally decision is drawn.
In digital world REST architecture and RESTful development is considered to have edges other conventional technology such as Soap / WSDL considering few non-functional requirements to have higher priority over others and there is whole gamut of standards, guidelines and best practices are evolving to make use of REST / JSON web services. On the database layer SQL vs NoSQL is also being discussed to take care of unstructured and structured data together.  On the middleware similar options available on hub / spoke, publish / subscribe, workflow, ESB concept supporting multiple technologies.
Once the technology is finalized based on complete end to end requirement of the project, the decision on selecting tools becomes critical to bring agility on the ground. The situation here requires thorough understanding on pain point for sponsors to effectively benefit from agile development and it should not lead to achieving one or two objectives like reducing timeline at higher cost and lesser satisfaction by employees or customers.  There are many commercial and freeware tools available to help capture requirement through model to help Model driven development and testing, but with many limitations. Some of the critical requirements of technology and tools are mentioned here for your review and feedback.
1.       Technology should have
a.       Well defined roadmap.
b.      Easy to understand and implement
c.       Adhered to best practices, standards and guidelines of established SDOs.
2.       Tools should be able to
a.       Capture all functional and non-functional requirements
b.      Provide version control to facilitate change management
c.       Create specification and document
d.      Test the system from all aspects such as unit testing, integration testing, system testing and acceptance / functional testing.
e.      Report on progress to meet project requirement
f.        Make presentation on issues, challenges and risks
There are many more points which can be added based on your feedback.
Agile development can be beneficial when everything done for the development of products, services, and solutions is done with most optimized way and at the same time when users of the developed product bring agility in the society. 

No comments:

Post a Comment