Vincent Thavonekham, CEO FactoVia, Microsoft Regional Director & MVP Azure 1/ Founder FactoVia 2/ Coach / Consuting : Microsoft Azure, DevOps, ALM TFS 3/ Looking for a challenging job with great conditions ? or need training ? Contact me via https://www.linkedin.com/in/thavo/ or https://twitter.com/vThavo
Sunday, June 30, 2013
Sunday, June 23, 2013
Encounters with Trinity: Large-scale Implementation on Azure Platform
Encounters with Trinity: Large-scale Implementation on Azure Platform: I have been closely reading the Azure CAT (Customer Advisory Team) which helps a lot of customer deliver large, complex projects. The Azu...
Thursday, June 20, 2013
Agile evening with Innovation Games(C) at Objet Direct !
4 hours of "Serious Games", game storming, beers and pizza ! Very instructive and great team building!!
Thanks to Maxime Bonnet, our Qualified Instructor, on the top of the 8th floor of Objet Direct :
Very oily hands full of Pizza, hence greasy pictures !
Wednesday, June 12, 2013
Traps to consider when implementing "Software Factory" and DevOps
Traps to consider when implementing "Software Factory" and DevOps.
It's in French, and I can create an English version on demand.
It's in French, and I can create an English version on demand.
Sunday, May 12, 2013
[DevOps / DevCloud] Wanna go beyond 'demo effect' and push your app into REAL production ?
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
Labels:
agile experience,
ALM,
Best Practices,
Lab,
SCRUM
Wednesday, April 24, 2013
At Seattle / Redmond working with Microsoft for ObjetDirect
I moved to another position, now working with ObjetDirect - France - as a Manager.
I'm in charge nationwide of the Microsoft Practice by developing our businesses and activities on at least the following topics:
- ALM Software factory,
- Windows Azure,
- Microsoft consulting and development,
- any other Microsoft technologies.
Obviously everything we're doing here is fully Agile ; why would I join ObjetDirect otherwise ?!?!
In addition, we are the sole company in France entitled to deliver Innovation Games® certified training, and we are very active as a community.
I got the opportunity to be invited by Microsoft on a worldwide NDA partnership in Redmond, to get trained and provide inputs on upcoming technologies (more info here).
Evening time: Seattle - Space Needle
I would like to thank ObjetDirect and Edouard Danel, our CEO, whom I had the chance to meet though my numerous network in Paris (ranging from Agile, .Net, to PNL and "Transactional analysis"...).
The massive campus (like a town, and takes me about 30 min running from 1 building to another !!), all green grass and trees, and where we eat evening time:
Labels:
Microsoft,
ObjetDirect,
partnership,
Windows Azure
Monday, February 18, 2013
NDepends... or How to pass your code quality audit ?
As far as I am concerned, I appreciate it because it forces us to care even more about code Quality and maintainability (which includes security, performance, Design...). Maintainability is particularly important because once in production, the Dev team will hand-over their code to the Maintenance Team.
Because such audit consists in watching numerous aspects, it all brings me back to an old post of mine listing the number of rules that FxCop and StyleCop monitors. Where the various rules are grouped into the following categories :
FxCop (or its variation integrated within Visual Studio called Code Analysis, or CA, that compiles your code then analyse it):
- Design
- Globalization
- Interoperability
- Maintainability
- Mobility
- Naming
- Performance
- Portability
- Reliability
- Security
- Usage
- Documentation
- Layout
- Maintenability
- Naming
- Ordering
- Readability
- Spacing
- Developers find it painful to comply to containing rules, as opposed to "no rules" at all of "his own home-made rule",
- Since the developers DONT have to learn all 400 rules at before hand, but ONYL progressively, it is not too bad. Moreover, with the help of Resharper, this tool reformats tedious painful and repetitive work automatically (Resharper can connect to FxCop and StyleCop so that it changes your code accordingly)
- Because of the Software Factory preventing check-in in any code that is NOT compliant to the given rules (NOTE: You have to determine with your team, which rule are compulsory, and which ones are not), the developers HAVE to follow the rules,
- Finally, within few months of coding, a survey done in the teams I have been working with shows that developers got used to it,
- And last, it becomes irritating for them to read code that IS NOT compliant (just like reading a book with plenty of grammar and spelling mistakes).
It's where NDepends enters into play ! It's a software that I have been using for nearly 10 years, written by Patrick Smacchia (author of books and blog dedicated to .Net, C# and Code Quality).
As far as we are concerned, the auditor came in and has inspected meticulously all aspects of our projects technically (the audit consisting in evaluating our Agility/Scrum process was done by another company) :
- all our source code,
- our DLLs and PDBs
- our web services
- and architectural diagrams
One snapshot will not be sufficient, because it's only when you can play visually with your code through Drill-Down (up until the exact line of code) that you could understand its power.
Where to start ?
You have to "feed" NDepend with as much info as you can (*.Sln, *.csproj, DLLs, PDB, ...) in a Drag & Drop manner, then it could "answer" many of your technical questions concerning your projects.
Indeed, for me it considers your "project" (Source Code, PDB, DLLs, previous version of your source code, new code, ...) as a LARGE database, wich MANY different views (too much to fit in a single Snap shoot):
where you could :
- Query your code as if it was a SQL Database, based on the CQLinq (Code Query Linq language is based on LINQ).
from m in Application.Methods
where m.NbLinesOfCode > 30 && m.IsPublic
select m
More sophisticated sample:
// UI layer shouldn't use directly DB types
warnif count > 0// UI layer is made of types in namespaces using a UI framework
let uiTypes = Application.Namespaces.UsingAny(
Assemblies.WithNameIn("PresentationFramework", "System.Windows",
"System.Windows.Forms", "System.Web")
).ChildTypes()
// You can easily customize this line to define what are DB types.let dbTypes = ThirdParty.Assemblies.WithNameIn("System.Data",
"EntityFramework", "NHibernate").ChildTypes()
.Except(ThirdParty.Types.WithNameIn(
"DataSet", "DataTable", "DataRow"))
from uiType in uiTypes.UsingAny(dbTypes)
let dbTypesUsed = dbTypes.Intersect(uiType.TypesUsed)
select new { uiType, dbTypesUsed }
The list of the thousands of build-in rules is listed here.

- Among the various features, I noticed the feature consisting in monitoring shifts in your code coverage and another one to prevent code quality regression, but I did not have the chance to use it: http://codebetter.com/patricksmacchia/2013/02/07/ruling-code-quality-regression
Having a professional auditor in front of us, it took him only 1 day to decompose our work and start providing us feedback. Within this very same time, he managed to better understand part of our code than our developers ! To do so, he used many tools ... including one called ... NDepend !
After having eliminated many "false positive" (since he does not know the context of our project), we managed to pass our audit with success and excellent grades !
As per today, I am using the version 4.1.0.6871 (which incorporates a stand alone version as well as a VS 2010 and VS 2012 add on to play directly with your source code).
Have a great audit !
Labels:
ALM,
Best Practices,
CodeMetrics,
ndepend,
quality
Subscribe to:
Posts (Atom)











