schedule Mar 1st 02:30 PM - Jan 1st 12:00 AM place Esquire

"Release Early, Release Often" is a proven mantra and many companies have taken this one step further by releasing products to real users with every commit a.k.a Continuous Deployment (CD).

Over the years, I've built many web/infrastructure products, where we've effectively practiced CD. However at Edventure Labs, when we started building iPad games, we realized there was no easy was to practice CD, esp. given the fact that Apple review takes a few days.

Our main question was: As mobile app developers, how should we architect/design our apps for CD?

We were a young startup, learning new behavior about our users (kids aged 5-8) everyday. We could not afford any delay in releasing latest, greatest features to our users. To solve this problem, I believe we've built an innovative solution to enable any mobile app developer to achieve CD.

If you are building real products, which have platform/3rd-party dependencies and you want to practice CD, this session is for you.

 
12 favorite thumb_down thumb_up 8 comments visibility_off  Remove from Watchlist visibility  Add to Watchlist
 

Outline/structure of the Session

  1. Context: First 10 mins will be spent explaining the context or our product and also to give a quick demo of our games, so participants can understand the constraints we operate under
  2. Architectural/design Walk-thru - Next 20 mins will be spent giving a detailed architectural/design walk-thru of our app and how this helped us with CD
  3. Lesson Learned - Next 10 mins will be spent highlighting some key challenges we faced and how we resolved them
  4. Q & A - 5 mins

Learning Outcome

  1. Key architectural/design ingredients for practicing CD for any mobile app development.
  2. Basic infrastructure required for CD

Target Audience

CTOs, Architects, Developers, DevOps, Release Manager

schedule Submitted 4 years ago

Comments Subscribe to Comments

comment Comment on this Proposal
  • Ajey Gore
    By Ajey Gore  ~  4 years ago
    reply Reply

    Naresh,

     

    While slides up and ahead of 40 makes more sense to what are you saying. how are planning to push through 81 slides? also, looking at this presentation reminds me of CI and not beyond agile. 

    Ajey

    • Naresh Jain
      By Naresh Jain  ~  4 years ago
      reply Reply

      Thanks for asking Ajey. Please note that I've clearly written under the Links section: "In Agile India 2012, I presented a session on Continuous Deployment Demystified. Above slides are from that talk. New slides will be created for this presentation, closer to the conference."

  • Prasad
    By Prasad  ~  4 years ago
    reply Reply

    Naresh,

    Are you going to cover tools and engineering eco system/ simulations used along with Xcode developer tool set..

     

    - Prasad

    • Naresh Jain
      By Naresh Jain  ~  4 years ago
      reply Reply

      Prasad, I would like to focus mostly on the architecture and design which enabled us to do CD on app platforms. Also I would like to keep this session open to other platforms as well, hence won't be going into XCode or other tool specific aspects.

  • Ebin John
    By Ebin John  ~  4 years ago
    reply Reply

    Hi Naresh,

    Great topic. Do you have plan to cover the basics of related topics like, Continuous Delivery and Continuous Integration? I think it will be of great value, if you could cover the basic difference between them, because all these terms are used interchangeably and there is lot of confusion on these topics.

    - Ebin

    • Naresh Jain
      By Naresh Jain  ~  4 years ago
      reply Reply

      Thanks for asking Ebin. Basic CI/CD stuff is clearly out of the scope of this proposal. I'm hoping someone else can cover that. Also my response to TV might help answer your question better.

  • Tathagat Varma
    By Tathagat Varma  ~  4 years ago
    reply Reply

    Hi Naresh - this sounds like an interesting topic, and might be relevant for those developing apps for tablets/iPad. One question - apart from the technology infrastructure aspect of CD, would you also be able to comment on the efficacy of CD itself - how well did it help you achieve the intended goal to improve customer adoption and experience? Or, you could have achieved similar or better results without it?

    -TV

    • Naresh Jain
      By Naresh Jain  ~  4 years ago
      reply Reply

      Thanks for the feedback TV. IMHO many people have spoken about CD already. In this session I plan to focus only on the tech infrastructure part of CD from our specific experience (mobile/tablet app development.) I can always talk about the efficacy of CD if the audience wants. However very few people talk about the tech-infra part and that's what I would like to focus on.


  • Liked Ryan Martens
    keyboard_arrow_down

    Ryan Martens - Beyond Agile Execution: Agility for Business and Impact

    Ryan Martens
    Ryan Martens
    CTO
    Rally Software
    schedule 3 years ago
    Sold Out!
    60 Mins
    Keynote
    Beginner

    Agile is not just a process change, its a mindset change for most. With faster time to market, better feedback and highly functioning teams, the Agile mindset opens our eyes to a better way of working as humans on large complicated and complex problems. Combining it with the concepts of Lean Startup, delivers another leap in team capacity and capabilities. It also opens the possibilities of using agility for more than just software development.

    Do you wonder how can we drive innovation in a disciplined way to tame our world's toughest problems? Can we apply the lessons learned from Agile and Lean Startup? Over the past three years, we've been able to apply agility at a new level, beyond business impact. Through our corporate social responsibility effort, "Rally for Impact", we aim to apply the agile mindset to mobilize citizen engineers to serve our communities and protect the planet. I want you to consider this growth path for yourself and your agile teams.

    Let's open the worlds mindset to a better way to empathize, explore and execute in these complex times.

  • Liked Jim McCarthy
    keyboard_arrow_down

    Jim McCarthy - Culture Hacking: The Prospect of Magnificence

    Jim McCarthy
    Jim McCarthy
    Founder
    McCarthy Technologies
    schedule 4 years ago
    Sold Out!
    60 Mins
    Keynote
    Beginner

    A culture is the set of shared attitudes, values, goals, and practices that both describes and shapes a group. The unique challenges of creating software have demanded totally new types of corporate culture. In response, we have created Agile, Scrum, and XP and many other cultural disciplines. These represent the birth of culture engineering and, although significant, are primitive compared to what will follow. Jim McCarthy introduces "culture hacking," a kind of cultural engineering that focuses on protecting personal freedom, extending openness, and embodying rationality. In the near future, a system made up of shared commitments and interpersonal protocols for hosting cultural innovations is likely to become available and standardized, leading to enormous personal and collective cultural and productivity gains. Happily, these gains will be based on culturally designed nobility of purpose, and a potent and virtuous cycle will continue to emerge, whereby profit derives from ennobled behavior. This cycle will lead to an era of widespread and abundant greatness - an era of unparalleled magnificence.

  • Liked Dave Thomas
    keyboard_arrow_down

    Dave Thomas - Unknown Knowns

    60 Mins
    Keynote
    Advanced

    In 2002, Secretary of Defense Donald Rumsfeld introduced us to the concepts of known knowns, known unknowns, and unknown unknowns. But he left out Unknown Knowns, things that we know without knowing it. And it turns out that these Unknown Knowns are actually the biggest category of knowledge - tacit knowledge.


    As developers, we work with knowledge: knowledge of the problem domain, knowledge of our tools, knowledge of our techniques, and knowledge of each other. So getting good at accumulating tacit knowledge is important.

    This talk will look at how we are poorly served by most of the current ways we are taught to be better developers. Can we do better? Only if we stop talking and start showing. Let's see why.

  • Martin Fowler
    Martin Fowler
    Chief Scientist
    ThoughtWorks
    schedule 3 years ago
    Sold Out!
    60 Mins
    Keynote
    Intermediate

    In the last decade or so we've seen a number of new ideas added to the mix to help us effectively design our software. Patterns help us capture the solutions and rationale for using them. Refactoring allows us to alter the design of a system after the code is written. Agile methods, in particular Extreme Programming, give us a highly iterative and evolutionary approach which is particularly well suited to changing requirements and environments. Martin Fowler has been a leading voice in these techniques and will give a suite of short talks featuring various aspects about his recent thinking about how these and other developments affect our software development.

  • Liked Rae Abileah
    keyboard_arrow_down

    Rae Abileah - Engendering Justice: Women, War and Peace

    45 Mins
    Keynote
    Beginner

    One in three women will be raped or beaten in her lifetime. Half of the seven billion global population are women so that means one billion women alive now will, or have been, beaten or raped or beaten. Women and children are disproportionately affected by war and occupation as well. And yet numerous studies illustrate how uplifting women's work and leadership can strengthen the whole society and economy. Women are at the forefront of global campaigns challenging militarism and violence, and working to redirect resources into health care, education, green jobs and other life-affirming activities. What can we learn from these women and their successes thus far? How can the technology sector support this crucial work? How do these social movements stay agile to rapidly respond to breaking news while building a long-term progressive movements for deeper social, economic and environmental justice? As Arundhati Roy said, "Another world is not only possible, she is on her way. On a quiet day, I can hear her breathing." In this talk, Rae Abileah will share visionary examples of women-led work for peace and justice and explore the paradigm shift needed for equality, human rights, and justice for all.

  • Liked Todd Little
    keyboard_arrow_down

    Todd Little - Leveraging Global Talent for Effective Agility

    Todd Little
    Todd Little
    Executive Consultant
    Accelinnova
    schedule 3 years ago
    Sold Out!
    60 Mins
    Keynote
    Intermediate

    A major challenge in agile development is the ability of test teams to keep pace with ongoing development while simultaneously ensuring that new development has not created regression failures. This case study from Halliburton shows how together with two globally distributed outsourcing partners they developed a comprehensive test automation strategy for their agile teams that effectively leveraged both in house and outsourced activities. This approach resulted in a significant quality improvement from prior releases.

  • Liked Ash Maurya
    keyboard_arrow_down

    Ash Maurya - How To Build Features People Will Want

    Ash Maurya
    Ash Maurya
    Founder
    Spark59
    schedule 3 years ago
    Sold Out!
    60 Mins
    Keynote
    Intermediate

    Most products fail. Not because we fail to build what we set out to build, but because we waste time, money, and effort building the wrong product.

    In this talk, I'll share our lean product development process that utilizes continuous customer feedback loops to ensure you don't go astray and instead build products people (will) want.

    What you'll learn:

    - How to track your your feature lifecycle on a validated learning kanban board
    - How to use qualitative testing techniques for early validation during the design and test phases
    - And then follow up with cohort based quantitative metrics to verify you have built something people wanted.

  • Naresh Jain
    Naresh Jain
    Founder
    ConfEngine.com
    schedule 3 years ago
    Sold Out!
    45 Mins
    Workshop
    Advanced

    As the popularity of Agile methods have grown, so have the misconceptions or myths associated with Agile also grown. These myths get even more glorified when we talk about them in the offshore or distributed context. And to make matters worse, you can throw in a fixed-price contract spanner into the engine.

    Worry not! In this fun-filled activity, we'll collect facts from the participants that they believe are true and then we'll declare them as confirmed or busted after an interactive (heated) discussion.

  • Corey Haines
    Corey Haines
    CTO
    Wavetable
    schedule 3 years ago
    Sold Out!
    45 Mins
    Tutorial
    Beginner

    Everyone has acronyms, mnemonics, and a list of rules to guide their everyday software design. In order to get the most out of these age-old gems, one needs to deliberately practices them. Rules are a good way to remind ourselves of these gems.

    Corey Haines emphasies his design guidelines in form of the "4 Rules of Simple Design." Attend this talk to understand the four rules and their importance in everyday programming.

  • Liked Corey Haines
    keyboard_arrow_down

    Corey Haines - Stories from 10 Years of Extreme Programming

    Corey Haines
    Corey Haines
    CTO
    Wavetable
    schedule 3 years ago
    Sold Out!
    45 Mins
    Talk
    Intermediate

    10 years ago I was introduced to Extreme Programming. Since then, I've been an avid practitioner, applying the techniques and values to my life as a software developer. Over that time, I've bounced between many extremes, learning and reflecting on the value that I get when building systems both for myself and for others.

    In this talk, I'll share some of those learnings and how my life as a software developer has changed with the times.

  • Liked Bernd Schiffer
    keyboard_arrow_down

    Bernd Schiffer - Net Promoter System for Agile Companies

    45 Mins
    Talk
    Intermediate

    Customer collaboration is essential to every Agile business. To create and collaborate to keep a customer is the purpose of an organisation. But still lots of companies try to make bad profits, i.e. profits earned at the expense of customer relationships. The Net Promoter System (NPS) is a renowned open-source system which addresses and measures customer collaboration. And did you know that you not only can use it to get feedback on your products and services, but also on your employees and your personal performance?

    NPS is a perfect fit for Agile companies - and those who want to be. Most of the companies I worked with (Agile coaching, training, consulting) had not heard about it, and far less were actually using it. This really surprises me, since NPS integrates like a charm with Agile, e.g. within product development via Scrum.

    In this session I'll explain the basics of NPS, i.e. promoters and detractors, satisfied and delighted customers, bad profits (how to deal with bad feedback?) and good profits, and why and how to measure these. Several stories from companies like Apple Retail, Zappos, Southwest Airlines, and others will help to make my point. I’ll further show why NPS is a very good fit with Agile regarding products, employees, and personal performance. Dos and Don’ts regarding NPS (also from personal experience) will close this session. Related to the Don'ts, I also cover some of the negative critiques out there.

  • Liked Mukesh Bhangria
    keyboard_arrow_down

    Mukesh Bhangria - Continuous Refactoring at Amazon: A Case Study

    45 Mins
    Talk
    Beginner

    Between the project deadlines, we always feel there is code which needs to be improved

    Usually Developers have the following 3 options:

    - Bite the bullet and do the refactoring as they go along.
    - Park the issue and address it later.
    - Allocate special time when the project gets out-of-control.

    As customer facing stories take higher priority, usually Developers are forced to choose the last option.

    However a team at Amazon took a different approach. Attend this session to listen to their first-hand story of how they changed this typical behavior to achieve Continuous Deployment on a critical service.

  • Liked Victoria Schiffer
    keyboard_arrow_down

    Victoria Schiffer - Agile Coaching? Sure thing! What about Life Coaching in Agile Thinking?

    Victoria Schiffer
    Victoria Schiffer
    Agile Coach
    SEEK
    schedule 4 years ago
    Sold Out!
    45 Mins
    Talk
    Beginner

    I love being around awesome people, who build great products customers desire. 
    I love learning from and together with these amazing minds. 
    I love creating the right environment for teams to flourish. 
    I love change, and learning from new experiences. 
    I love working in Agile environments.

    How about you? 
    I bet there are some elements of this list why you're in Agile, too. And you can probably add even more elements to it.

    The Agile Manifesto states amongst others individuals and interactions, customer collaboration and responding to change.

    In our everyday life doing Agile we already respect these aspects in many ways. 
    But do we practice what we preach as best we can?

    I'd like to challenge your current way of thinking about people and processes. 
    I'd like to challenge you to focus on you, before you focus on others. 
    I'd like to challenge your current way of reflecting. 
    I'd like to inspire you to go different ways. 
    I'd like to inspire you to inspire others.

    In Agile we're already good in improving our processes and creating well performing teams and hence building the right things in the right way. And in the Agile Manifesto's communication and collaboration piece we can even get better.
    "You have not yet reached the limit of what you're capable of!" means we can always further improve. And we do follow this idea in our Agile processes, too, through continuous feedback (Retrospectives) and improvement.

    And why not take it even further? Why not go "Beyond Agile"?!

    Here's where aspects of Life Coaching come in handy: through also understanding and improving ourselves (how do we interact with people due to how we perceive our environment) we will even further improve communication and collaboration.

    Life Coaches believe our clients know the answer. And even if Agile Coaching is slightly different than Life Coaching, I see it as very relevant in Agile Coaching, too. If we apply this in Agile, instead of giving our clients (team, colleagues) the answers, asking them powerful questions to help them be more aware of what's happening at the moment, they will find their answer for it and will have a much better commitment to making the change for themselves, their teams and the company. It's not for us to TELL them what to do, but to ASK them what's going on for themselves. Here's where I see a huge chance for improvement.

    In my session I give lots of examples on how to link Life Coaching ideas to our Agile work environments. I've given the session at LAST Conference Melbourne and at the Agile Coaching Circles Meetup Melbourne. The audience was engaged and the attendees were very happy about having some new ideas on how to improve their daily work life.

    Come along to be inspired by Life Coaching and thus to benefit our Agile Thinking!

  • Liked Giovanni Asproni
    keyboard_arrow_down

    Giovanni Asproni - Methodology Patterns: a Different Approach to Create a Methodology for Your Project

    Giovanni Asproni
    Giovanni Asproni
    Consultant
    Asprotunity Limited
    schedule 4 years ago
    Sold Out!
    90 Mins
    Tutorial
    Advanced

    In the software world we have been looking for “The Methodology” to solve our software development sorrows for quite a while. We started with Waterfall, then Spiral, Evo, RUP and, more recently with XP, Scrum, Kanban, DAD, SAFe (there are many others, but, their impact, so far, has been limited).

    In this tutorial, I'll show why this search for the holy grail is bound to fail--each methodology has strenghts and weaknesses that make it suitable only in some contexts--and I'll describe a different approach based on patterns and pattern languages, that teams can use to create their own methodologies to suit their specific needs, which, in my experience, has a higher chance of success. 

    The approach is based on the observation that all the practices used in all modern methodologies--e.g., user stories, use cases, team self organization, TDD, unit testing, acceptance testing, continuous integration, iterative and incremental development, etc.--come from the same set. Different methodologies just mix and match them differently. All those practices can (and many have already been) described as patterns whose relationships with each other form a set of pattern languages.

  • Liked Naresh Jain
    keyboard_arrow_down

    Naresh Jain - Scaling XP Practices inside your organization using Train-the-Trainer Model

    Naresh Jain
    Naresh Jain
    Founder
    ConfEngine.com
    schedule 4 years ago
    Sold Out!
    90 Mins
    Workshop
    Advanced

    How do you effectively scale skill-based, quality training across your organization?

    Over the years, I've experimented with different ideas/models to scaling skill-based training across an organization. In the last 4 years, I've pretty much settled down on the following model. Its very useful when mentoring teams on skills like Test-Drive-Development (TDD), Behavior-Driven Development (BDD), Product Discovery, Writing User Stories, Evolutionary Design, Design Patterns, Problem Solving, etc. I've successfully implemented this model at some very prominent fortune 500 enterprises.

    The goal of this workshop is to explore what other successful models organized have used to scale skill-based training in their organization.

  • Liked Tathagat Varma
    keyboard_arrow_down

    Tathagat Varma - Agile, Management 3.0, Holacracy...what next?

    Tathagat Varma
    Tathagat Varma
    Founder
    Thought Leadership
    schedule 4 years ago
    Sold Out!
    45 Mins
    Talk
    Advanced

    Pesentation deck is now available at http://www.slideshare.net/Managewell/what-next-31791295

    Modern management methods are still based on the then seminal work by Henri Fayol some 200 years back, followed by Frederick Taylor's work some 100 years back! Sadly, those models were predominantly based on industrial work, and don't really work that well in knowledge industry and today's sociological dynamics at workplace. Classical Agile methods codify several people practices that allow for a self-organizing team to evolve, but doesn't offer a lot of guidance on how to develop and groom leadership for agile organizations beyond a software team. Management 3.0 takes this issue further and develops it into a separate discipline altogether. On similar lines, Holacracy seeks to create social technology for purposeful organizations, though not specially targeting software organizations. So, the issue of leadership still continues to be unresolved and rather left to pave its way on its own. Unfortunately, when we want to achieve true end-to-end agility, it is not enough for software teams to be charging at top speeds but leadership not evenly matched to support them well in their endeavors. We clearly have a problem at hand...

    In this talk, we will study how the role of leadership has evolved and what does it look like for agile organizations at present. Many agile methods take an extreme view that limit leadership to team-level collective ownership of leadership. However, that might not be enough because of various reasons. In any non-trivial organization, whether a software organizations or any modern business employing software for business advantage, the reality is that organization units beyond a plain-vanilla software teams do exist. So, how does one go about grooming their top talent for playing an effective part in this process?

    Finally, we will also try to take a shot at some of evolving paradigms. For example, all these management thoughts are still based on the kind of outdated premise that an organization is based on 'boundaries' of operations. However, already we see that model being broken down, and the future teams look more like boundaryless entities bound with nothing but a unifying purpose that brings a bunch of volunteers together for a period of time. If our success increasing depends on such teams being able to effectively self-manage themselves, what role does leadership have to play in it, and are we getting ready for it? 

  • Liked Daniel Zen
    keyboard_arrow_down

    Daniel Zen - Agile Engineering Javascript with Jasmine & AngularJS, Karma & Jenkins

    Daniel Zen
    Daniel Zen
    CEO
    Zen Digital
    schedule 4 years ago
    Sold Out!
    90 Mins
    Tutorial
    Intermediate

    Agile & Test Driven Development of frontend JavaScript User Interface code is often passed over using the excuse that the UI code is "declarative" (What you see is what you get) and therefore does not 'need' to be tested. Others, will dismiss testing frontend AJAX code as too difficult to maintain or unnecessary because it is only important in context with the server. We will show how these misconceptions are false. 

    We will cover several popular JavaScript tools and technologies that make Agile frontend web development easy. We will show how these front end technologies cannot only be functionally tested, but Unit Tested. If time is available will cover Continuous Integration, Dependency Injection, & Mock objects.  

    By including your front-end code in your automated testing process you can prevent the inclusion of bugs that are usually only caught with manual testing.

  • 45 Mins
    Experience Report
    Intermediate

    Agile processes are the new order of IT implementations. These talk will elaborate on our experience and learnings during agile process implementation at Walmart. 

    We will touchupon following 3 key areas and our learnings that helped us scale agile in large enterprises.

    • Process Visualization - Our learnings related to visualization of existing processes and practices and how it helped us identify signals from noise

    • Product Backlog Elaboration - In a complex and large programs product backlog management and role of product owner needs to be revisited.

    • Team Working Agreement - This is particulary crucial for scaling agile as dependency management is one of the key aspects of enterpsie agile implementation.

    We will conclude with our key learning of how processes needs to be continuously evolved in large scale implementation.

  • Liked Pramod Sadalage
    keyboard_arrow_down

    Pramod Sadalage - Ten Patterns of Database Refactoring

    Pramod Sadalage
    Pramod Sadalage
    Software Developer
    ThoughtWorks
    schedule 4 years ago
    Sold Out!
    45 Mins
    Talk
    Beginner

    Over the life of an application as requirements change, application usage patterns alter, load and performance changes the need to change database and database architecture is inevitable. There are patterns of these changes such as

    1. 1. Encapsulate Table with View
    2. 2. Migrate method from database
    3. 3. Replace method with views
    4. 4. Introduce Read only table
    5. 5. Split table
    6. 6. Make column non-nullable
    7. 7. Drop column
    8. 8. Add foreign key constaint
    9. 9. Merge columns
    10. 10. Replace columns

    In this talk we will discuss the above database refactoring patterns and different implementation techniques to enable blue, green deployments, allow for legacy applications to work with fast changing database and enable the teams to effectively refactor the database to fulfill the changing needs of the organization.

  • Liked Johannes Brodwall
    keyboard_arrow_down

    Johannes Brodwall / Niruka Ruhunage - Remote Pair Programming

    45 Mins
    Demonstration
    Beginner

    Can you maintain agile engineering practices with a distributed team?

    Johannes is the Oslo based Chief Scientist for the Sri Lanka based company Exilesoft. In order to promote agile engineering practices, he uses remote pair programming to connect with teams halfway across the world.

    In this talk, we will go through a practical approach for remote pair programming adopted for high-latency situations. We will demonstrate remote pair programming with a live example and we will discuss the advantages and usages of the approach. We will also cover the practical parts of remote pair programming, such as tools and setup.

    After seeing this talk, the audience should be able to remotely pair with members of their distributed team. They will also get a lot of tips on how to use pair programming effectively in both local and remote settings.