Learnings and reflections from Extreme Programming Conference!

Alvin Toffler, renowned American author, known also for his works discussing the "Digital revolution" once said "The illiterate of the 21st century will not be those who cannot read and write, but those who cannot learn, unlearn, and relearn."

Hello,

At outset of my career I chose not to be modern illiterate :) hence I keep learning aggressively whenever I get chance, keep unlearning what is not relevant and keep relearning stuffs whenever required. With learning as a prominent goal in mind, I had a hectic but really productive learning weekends recently. It started with two days' workshop (24-25th July) on "High Impact Presentation" by Dale Carnegie Training conducted by Mindtree. Then two days' workshop (8-9th August) on "Extreme Programming Conference" by industry experts again conducted by Mindtree and finally attended "Judges Training Program" on 10th August conducted by Toastmasters International.

Out of these trainings I underwent, I thought it's my duty to share the knowledge I gained particularly from " Extreme Programming Conference"  (http://www.xpconference.in/) since it was Mindtree who gave me the opportunity to attend it and it would be relevant for most of you (needless to mention that you can contact me directly if you want me to share my experiences on other trainings as well :) ). I think it’s enough for we developers to know the terminology, rest we all are expert to dig into it with our Google god J. Hence, I will at least try to share all the terminologies that I learnt in this mail and references wherever possible.

eXtreme Programming is one of the agile software development method which is leveraged to improve software quality and responsiveness to changing customer requirements. It advocates frequent releases in short cycles to improve productivity.


eXtreme Programming Values
a.       Communication
b.      Simplicity
c.       Feedback
d.      Respect
e.      Courage

eXtreme Programming Philosophies
a.       Collective ownership
b.      Continuous delivery
c.       Sustainable pace

Sessions on Continuous delivery
Key takeaways were -
a.       Architecture can strangle CD in situations like
                                       i.      Non clustered architecture
                                     ii.      Blocking requests for long running steps
                                    iii.      Hardcoded IP addresses for endpoint IPs or linked server in Database
b.      Rotating teams frequently to cross pollinate knowledge  (tools + techniques) (like DevOps)
c.       Feature based trunk development instead of using branches.
d.      Every change to the system should be releasable. Should release any version at the push of a button.
e.      Never opt for branch based development, rather user trunk based.


Full stack developer (FSD) (near to DevOps)
FSD is capable of performing tasks at any level on entire tech stack. It may involve
a.       Infra
b.      API/Backend
c.       Query DB
d.      UI
e.      Project Mgt


They are also called Packaged Geek in eXtreme Programming.

Don't Branch in Continuous delivery
a.       Branching is not recommended in extreme Programming, which is being followed by company like Facebook & Google
b.      Only trunk based development is recommended
c.       Frequent check ins are allowed in single branch trunk
d.      Bugs should be fixed on trunk and merge with release branch
e.      Release branches are never merged back to trunk
f.        Release branches are short lived, frequently replaced by newer release branches

Then How to roll back in case of issues
                                       i.            Instead of branching, features should toggled on and off, as per requirement. Question - We should get rid of branching practice. Branching there are changes which may impact multiple places like presentation logic changes etc.
                                     ii.            As soon as a feature is released, get rid of it.
                                    iii.            Toggles are applied at UIs
                                   iv.            Features with no UI, the toggle will be in the app code
1.       Techniques like polymorphic substitution and dependency injection should be used to avoid crude conditional test
                                     v.            Pipelines for different permutations of toggles for releases should be setup
1.       IF either of the build fails, it implies a bad commit

Feature toggle types
                                       i.            Release - partial features, temporary
                                     ii.            Business - certain class of users, permanent
                                    iii.            Runtime - easier rollbacks, run tests with various configurations of features
                                   iv.            Build - new feature codebase is not compiled

Book Reference provided
Uncle Bob's  - Clean Coder & extreme programming in practice

The Coding Dojo Handbook - Emily

Also, I created a presentation out of it, here is the Slideshare link - 



24 comments:

Unknown said...

Thank you for sharing the valuable information here. This was nice and please keep update like this valuable information.

Dotnet Training

Unknown said...

thanks for sharing wonderful blog with us. its really more helpful to our institute candidates to get aware some useful knowledge keep sharing more information.
Dot Net training in Chennai

Unknown said...


Thanks for the good words! Really appreciated. Great post. I ve been commenting a lot on a few blogs recently, but I had nt thought about my approach until you brought it up.

SAP training in Chennai

Unknown said...



All are saying the same thing repeatedly, but in your blog I had a chance to get some useful and unique information, I love your writing style very much, I would like to suggest your blog in my dude circle, so keep on updates.

SAP training in Chennai

deeksha said...

your procedure and scripts are very well good and it is very much impressive too. thus i got more information from your blog it is very well done.


cognos Training in Chennai

sathya said...

Thank you for taking the time to provide us with your valuable information. We strive to provide our candidates with excellent care and we take your comments to heart.As always, we appreciate your confidence and trust in us.

Base SAS Training in Chennai

Riya arora said...

nice theme,I liked this SEO jobs in Hyderabad

prabash said...

I have read your blog its very attractive and impressive. I like it your blog.



IOS Training in Chennai | Best IOS Training Institute in Chennai | No.1 IOS Training in Chennai | IOS Developer Training in Chennai | Online IOS Training in Chennai

Unknown said...

Nice blog. Thanks for your valuable information and time to understand.
Robotics Project Center in Chennai | IEEE Robotics Project Center in Chennai

Unknown said...

Impressive blog with lovely information. really very useful article for us thanks for sharing such a wonderful blog...
Final Year Project Center in Chennai | Final Year Project Center in Velachery

Nancy said...

Hats off to your presence of mind..I really enjoyed reading your blog. I really appreciate your information which you shared with us.
BE/B.Tech Project Center in Chennai | BE/B.Tech Project Center in Velachery

sheikh said...

How's about hiring our software development company in Toronto?

Unknown said...

I believe that there would be great opportunities for those who are coming around this area.
Best Online Software Training Institute | Apache Spark Training

Spotify Web Player said...

Thanks for sharing these useful information! This is really interesting information for me.- spotify web player

Anonymous said...

I am learning the skills of embedding html into blockchain projects.
Frank
blockchain developer

Unknown said...

Best selenium online training institute `

khairy said...

شركة مكافحة حشرات بخميس مشيط
شركة كشف تسربات بخميس مشيط
شركة عزل اسطح بخميس مشيط
شركة تسليك مجاري بخميس مشيط
شركة تنظيف كنب بخميس مشيط
شركة تنظيف مساجد بخميس مشيط
شركة تنظيف سجاد بخميس مشيط

rohini said...

This is such a great post, and was thinking much the same myself. Another great update.
iphone display replacement | iphone water damage service | iphone glass replacement | iphone battery replacement | 100% genuine apple parts | iphone unlocking service

Business said...

Thank you so much for posting this. I really appreciate your work. Keep it up. Great work!Best Placement company in Hyderabad

srihariparu said...

Good Post! Thank you so much for sharing this pretty post, it was so good to read and useful to improve my knowledge.

MatLab Training Institute in Chennai | MatLab Training in Velachery | MatLab Courses in Medavakkam

Vishal DurgaIT said...
This comment has been removed by the author.
pixel studios said...

Interesting information and attractive. Thanks for your sharing.
Digital Marketing Company In Chennai
Ecommerce Web Development Company In Chennai

Durga IT Solutions said...

Thanks for sharing such a wonderful Post with us. I learnt alot from your post. I am appreciating from you to you will share more information about it. Please keep sharing. Thanks Alot
Lenovo Service Center in Hyderabad.
Best Laptop Service Center in Kukatpally, Hyderabad.

vijay said...

I am really happy with your blog because your article is very unique and powerful information.. Thanks for sharing your informative post on development.Your work is very good and I appreciate you and hoping for some more informational posts.keep writing and sharing.
Salesforce Training in Chennai

Salesforce Online Training in Chennai

Salesforce Training in Bangalore

Salesforce Training in Hyderabad

Salesforce training in ameerpet

Salesforce Training in Pune

Salesforce Online Training

Salesforce Training