Agile Development in Digital World
Thursday, May 23, 2019
Tuesday, October 6, 2015
Agile Development in Digital World: Agile Development for IoT Solutions
Agile Development in Digital World: Agile Development for IoT Solutions: Development for IoT will include multiple domains such as green building, smart grid, industrial monitoring, agriculture, smart cities,...
Tuesday, December 9, 2014
Agile Development for IoT Solutions
Development for IoT will
include multiple domains such as green
building, smart grid, industrial
monitoring, agriculture, smart cities, healthcare, connected homes,
telematics and supply chain, safety and security, forest and wild life,
automotive, natural disasters, etc.
Agile development for IoT (Internet of Things) or Internet
of Services (IoS) involve three distinct stages as below:
1. Sensors which collect data (including identification and addressing
the sensor/device)
2. Application to collect and analyze this data for further
consolidation and,
3. Transmission of data to the decision support system. Agile
Analytics may be used for the development of decision making process.
Model Driven Architecture (MDA) can help accomplish agile
development fulfilling the fundamental requirement of complex association
between data collection points, iteratory / evolutionary development, change
management, version control etc. which include modeling of standard interfaces
associated with sensors.
For example IoT development for smart cities will include below
list of entities
• Smart parking. •
Intelligent transport system. •
Tele-care. • Woman Safety • Smart grids.
• eHealthcare. • Smart urban lighting.
• Waste management. • Smart city
maintenance. • Digital-signage. • Water Management
The data collection point can be done using model for each aggregated
entity using the entity model and association between the entities can be
defined. Then using entity modeling tool the interface can be modelled using
standard message, exception / error messages, events and protocol. This
modeling will help to generate soap / REST specification using either XML /
JSON / Text format as per convenience.
The entire process can be developed considering future
requirement for change management, version control and other non-functional
requirement such as single sign-on, caching, HA, event polling or pushing and
other utility services which are applicable from case to case. The information
flow can be designed using common data model, which will help the application
to collect the data and process based on data structure, specific business policy
and practices.
Following SOA principles of parallel development of system architecture
and business process architecture will help achieve agile development of
complete end to end IoT solution.
Your comments and feedback on specific issues with
aggregated entity and association between entities and agile development management
are welcome.
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. Wednesday, November 26, 2014
Agile Development using the right technique
Agile development ultimately driven by the suitable state of
the art technique to ensure the holistic objective is met by simply aligning
with the Organization structure, goal and process. Agile development is very much associated with
requirement capturing using “User story” template for better alignment. But
there are many cases where requirement is being captured using Use Case
template, Story Point and Model driven Architecture.
Out of many ways of capturing requirement and defining
acceptance criteria, MDE / MDA proves to have advantage over other mechanism
due to below reasons.
1.
User Story – Aligns very well with business
requirement and business value, but technically bring lot of challenges to
handle change request, version control, and effort estimation. Effort estimation
using story point has been always ambiguous with a degree of accuracy varying
from +/- 30% and this figure in effect introduces 60 % risk to project timeline
and cost.
2.
Use Case – This technique is not very often used
with agile development using scrum, but there are many projects, which kick
start using Use Case document. This technique of requirement capture is subject
textual description of all functional, behavioral, non-functional and system
requirement, which always brings in understanding gap between the customer and
developer. And also this technique brings in all challenges such as change
management, version control and effort estimation.
3.
MDA / MDE – This technique has been used but
very rarely in Agile development for digital services and it proves to be much
more reliable and overcome many short coming identifying through user story and
use case template for requirement capturing. The major advantage was observed with
the viewing of business requirement, implementation, effort estimation and
version control.
MDE / MDA tools are
available today which transform the business model to database in SQL or NoSQL
format, generate specs for Soap, REST and many other technologies. The tools
are capable of capturing non-functional, behavioral and functional requirement and
combine them to Database, API and connectors for realization of business
requirement. This mechanism brings in lot of advantage over other technique.
However it is open debate and discussion.
Your feedback and comments on advantage and disadvantages of
various techniques are welcome.
Monday, November 24, 2014
System Development using the Agile process
Successful digital service providers will be the ones
who are agile and fast-moving, highly efficient and customer-centric and those
who know how to partner to deliver the services their customers want.
Agile development is in practice for a decade now and still many organizations prefer to continue in their traditional process for software development instead of adoption of agile process. The current situation is not because the benefits of agile development is not well understood, but due to lack of micro level plans for adoption. There is possibility for every software project to adopt development principles and manifesto to large extent. Typical list of process steps are mentioned below.
If all processes and principles mentioned in
agile processes are followed in an ideal condition, then project success rate
in terms of meeting timeline and budget is likely for more than 90 % project.
But in reality the success rate is very low and that brings the question mark
on where things go wrong. Most important among all points is the customer and
customer interaction, which never happens. Agile process makes it little linear
by mentioning that customer proxy can take the role of customer in case
customer is not available due to the busy schedule. Most of the failure happens
due to this reason as agile process story estimation and story point
computation starts with proper understanding between the group of developers
and customers.
The root cause of agile project failures are due to below
mentioned reasons, which worth noting to incorporate in the successive agile
projects.
1.
Involvement of actual customer rather than proxy
customer
2.
Include the cost of customer/s time in the
budget
3.
Ensure technical customer and cost controlling
customer/s are included for collaboration with the development team, which is
very difficult to achieve in mega projects.
4. There should be some other parallel
collaboration between customer and developers other than system / software
development. For example some team game
or cooking or trekking should be considered as other areas of collaboration
which opens up understanding of body language with ease during discussion on
stories and acceptance criteria.
Subscribe to:
Posts (Atom)