OBSERVATION
Over the past few years, I am facing the following
facts :
- We want to produce to best of the best application according to all
possible "best practices" and recommendations (Code
quality, tools, methods, Agility vs. micro-management, waterfall, real
world constraints, ...),
- Things seem to be so easy, because we got
presented trivial demos or we only considered "Proof
Of Concepts".
As it seems to be so easy to develop
and market our application!
Watch out!! Have you thought about the following?
- Taken into account real delivery and operation constraints :
- ITIL v3 (support, billing, delivery,
licensing, ...), DevOps or DevCloud, legal aspects, IT security
people, ...
- The IT industry is moving so fast that to beat competitors, many
software companies are claiming they can address your problem and is only
presenting you trivial cases and we tend to focus only on
development aspects. .
However, once the developments are completed, you are
left with:
- No budget beyond development, to address many operational topics!!
- No time left because delivery and operational aspects are more
difficult than expected
- You don't know how to deliver on time because of unexpected purchases
you have to do (production licensing, buy an alternative deployment tool,
because the one considered only managed to deploy your easy trivial demo...),
- You forgot to consider backups, disaster recovery, SLA, maintenance,
and retirement of the application (with the associated cost of the
cleaning up all backups).
The solution is obvious!
Think up front, and start small BUT up until the end
of the chain, with real-world constraints
- Development, "true" test, deployment with real-world constraints
(true DNS, true SLL certification ...), monitoring of the production instance
...
This is to force you address topics that could be uncovered... and fail fast if you are stuck in front of a wall! - Use Agility and DevOps / DevCloud to face real
problems:
"Think big, act small, fail fast; learn rapidly" (cf. Lean software development)
Easy to say, what can I do
about it?
Based on my numerous ALM experiences and on experts
around me, I have created a Microsoft .Net Lab.
It is a gathering of experts, sponsored by
ObjetDirect, where various people from the fields are sharing their experience
and real-life problems. Then, this experience is "instantiate" (=“coded”
and documented) as a large project to:
- highlights real-life issues
- show how to address them (if possible)
- or find a hack around.
Zoom on the 'Dev' part: The TFS+VS 2013 Software Factory