schedule Feb 28th 10:30 AM - Jan 1st 12:00 AM place Grand Ball Room

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.

 
7 favorite thumb_down thumb_up 2 comments visibility_off  Remove from Watchlist visibility  Add to Watchlist
 

Outline/structure of the Session

Detailed talk breakup:

Database Refactoring:

Types of database refactoring

  • Architectural Refactoring
  • Structural Refactoring
  • Data Quality Refactoring
  • Referential Integrity Refactoring
  • Database Code Refactoring

How is database refactoring different that code refactoring

How to enable old applications along with database refactoring

Why are Transistion states important when deploying multiple database refactoring

How does the timeline of a Database refactoring look and how long can they take to complete.

Discuss these database refactorings in detail.

  • Encapsulate Table with View
  • Migrate method from database
  • Replace method with views
  • Introduce Read only table
  • Split table
  • Make column non-nullable
  • Drop column
  • Add foreign key constaint
  • Merge columns
  • Replace columns

Learning Outcome

Attendees will learn 

  • How to refactor databases
  • Techniques for refactoring databases without causing legacy applications to fail
  • Improve team productivity
  • Improve the ability to deploy multiple releases along with database changes
  • How to integrate data developers, dbas and developers

Target Audience

developers, dba, database developers

schedule Submitted 4 years ago

Comments Subscribe to Comments

comment Comment on this Proposal

  • 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 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.

  • Naresh Jain
    Naresh Jain
    Founder
    ConfEngine.com
    schedule 4 years ago
    Sold Out!
    45 Mins
    Demonstration
    Intermediate

    "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.

  • Liked Cara Turner
    keyboard_arrow_down

    Cara Turner - Building Creative Teams: Motivation, Engagement and Retrospectives

    Cara Turner
    Cara Turner
    Agile Coach
    Khanyisa Real Systems
    schedule 4 years ago
    Sold Out!
    90 Mins
    Talk
    Advanced

    How do software teams become creative? If you're not a start-up, does creativity even play a role in the business driven world of software development? Idea generation is the basis of all our work - no matter how challenging or mundane. With a scientific approach to implementing change, creativity is the basic tool we have for addressing the challenges of software development.

    This talk explores the elements of engagement and creativity along with the neuroscience of generating ideas. These give us specific insight into how employing different agile retrospective formats over the course of the product development process can extend our usual practices and develop a thinking mind-set comfortable with tackling daily work with a fresh and explorative approach.

  • Liked Johannes Brodwall
    keyboard_arrow_down

    Johannes Brodwall / Buddhima w.wickramasinghe. - Practice agile programming with coding dojo

    90 Mins
    Workshop
    Beginner

    A Coding Dojo is a fun and social way to become a better programmer. Johannes is an experienced coding coach who will guide you through a few hours of programming that will transform your understand your craft and yourself as a programmer. In the workshop you get to try out pair programming, test-driven development and continuous refactoring for yourself and you get lots of recommendations on how to improve your coding and testing. You will need to bring your own computer with a development environment of your choice. Recommended for Java, Ruby, JavaScript and C# developers.

    This is what previous participants say about the workshop:

    • What did you learn? New tools, pair programming and fun exercises; Ide tricks, programming language basics, testing tools, using tests as a reasoning tool; you can comfortably pair with strangers.
    • What surprised you? Small steps work better than planning; It's easy to get started when you pair program; Pair programming is nice
    • What do you plan to do next? Using TDD every day; Listen to partner more carefully - he may already have solved the problem.
  • 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.

  • Liked Vinod Sankaranarayanan
    keyboard_arrow_down

    Vinod Sankaranarayanan / Pravin Kumar Thakur - Introducing Agile Knowledge Transfer

    20 Mins
    Experience Report
    Beginner

    After more than 5 years of supporting the thetrainline.com platform, ThoughtWorks worked with The Trainline teams to transfer knowledge and context  back to the Trainline Teams.

    This methodology was co-created by ThoughtWorks and Trainline as a healthy sustainable and mature way to transfer knowledge. The transition itself was about a year long and involved multiple agile concepts around remote pairing, program MVP and above all, continuous delivery and non-disruption to business through the process.

    This presentation would take the audience through the experiences and learnings of the process. This session is co-presented by ThoughtWorks and Trainline (vendor and customer) and will provide an insight across multiple spectrums of delivery and business.

  • Liked Ellen Grove
    keyboard_arrow_down

    Ellen Grove - Build Your Dreams: User Requirements Gathering with LEGO Serious Play

    90 Mins
    Workshop
    Beginner

    Let your hands be the search engine for your brain! LEGO® Serious Play® is a powerful thinking, communicating and problem solving technique that can help you and your team do serious work through structured play activities using a popular and playful 3D modeling toy. Through a facilitated process of building models that, storytelling and reflection, every person at the table is engaged and actively participating in the discussion, whether the topic is individual aspirations, team relationships, developing a new product or solving a wicked organizational problem. Everyone builds and everyone tells their story – all participants have equal opportunity to put their own points of view on the table, unlocking new perspectives and exposing the answers that are already in the room.  LEGO Serious Play has been used successfully for team-building and problem solving in a variety of organizations, from NASA to RBC to academic settings and public utilities.  

    This presentation provides a hands-on introduction to LEGO Serious Play, so that you can experience firsthand how using LEGO to do real work unleashes creativity and enables meaningful conversations in a very short time. We will explore how to use this playful technique to collaboratively elicit information about user requirements and strategic design issues using the open source User Requirements with Lego methodology developed by a team at the University of Lugano, Switzerland.  This approach is particularly suited to Agile teams that want to get team members and stakeholders sharing their different perspectives on common goals in an open and light-weight manner.

  • Liked Nikhil Joshi
    keyboard_arrow_down

    Nikhil Joshi - Build - Measure - Learn : Without spending a fortune

    20 Mins
    Experience Report
    Beginner

    At times we have great product ideas but the biggest barrier to entry lies in answering few questions such as:

    - How do I define and validate Problem hypothesis, Solution hypothesis and Underlying assumptions?

    - How do I quickly setup a platform for people to register their interest?

    - What will keep the potential customers engaged, excited until the first release (or beta) is out?

    - How do I get feedback from the early adopters?

    - And eventually when I have answers to some of these questions, how do I make a decision to persevere or pivot?

    If you've faced a challenge while answering any of these questions while building/validating your product idea, this session is for you. We'll look at tools and techniques to validate the product hypothesis early-on without spending months or fortunes. We'll also look at a case study to highlight how some of these tools, techniques helped us validate our product idea.

  • Liked Ram Srinivasan
    keyboard_arrow_down

    Ram Srinivasan - The Conflict Paradox

    90 Mins
    Workshop
    Intermediate

    It is not a question of if a team is going to have a conflict; it is a question of when. Equipping them to deal with conflict is more than creating agreements or having a good facilitator. We look at a conflict model that focuses on dynamics of conflict by understanding- 1. Cognitive skills:self-awareness about triggers, hot spots, emotions,behaviors. 2. Emotional skills:reading emotions, body language, balancing emotions, using curiosity 3. Behavioral skills:understanding others’ perspectives and needs, avoiding 8 destructive behaviors, embracing 8 constructive behavior. In an organizational setting, it is important to understand the source (culture, interdependence, incompatibility, personality, power, etc.) and types of conflict (cognitive vs. affective). Creating awareness about conflict processes, retaliatory cycles and building a conflict profile can empower teams engage in constructive disagreements. 

  • Liked Colin O'Neill
    keyboard_arrow_down

    Colin O'Neill - Achieving Enterprise Agility with the Scaled Agile Framework...and Have Fun Doing It!

    90 Mins
    Tutorial
    Intermediate

    Scrum, XP, Kanban and related methods have been proven to provide step changes in productivity and quality for software teams. However, these methods do not have the native constructs necessary to scale to the enterprise. What the industry desperately needs is a solution that moves from a set of simplistic, disparate, development-centric methods, to a scalable, unified approach that addresses the complex constructs and additional stakeholders in the organization—and enables realization of enterprise-class product or service initiatives via aligned and cooperative solution development.

  • Liked Vinodhini
    keyboard_arrow_down

    Vinodhini / Thushara Wijewardena - Robotic Warehouses, Alien Domain, Offshore developers, Visionary customer : Saved by agile

    20 Mins
    Experience Report
    Intermediate

    Here is a case study of how agile outsourcing can be practically applied even when the business domain is very complex and alien to offshore teams.
    The example is a project in which Exilesoft provided for a leading Norwegian producer of Robotic warehousing solutions. The project involved transforming their legacy application, produced using multiple suppliers and methods, into a newly cast application solution. This project also had its own share of typical challenges.

    • Lacked definitive and reliable documentation,
    • Domain knowledge was limited to a few very busy individuals,
    • Development and redeployment could not interrupt attention to current customers,
    • Complexity was high and design was fragmented, and
    • Focus heavily invested on current product and customer support

    These limitations along with the lack of understanding of agile methods strongly suggested the use of a method adaptive in nature, and not heavily vested in large inflexible legacy elements.
    We commenced the engagement with two pivotal elements; client awareness (agile orientation) and a roadmap of committed involvement. To lay credibility this had to be backed up with proven result delivery in the very early stages. It allowed for flexible adaption, and the creation of an atmosphere that fostered client interest.

    During this session, we will take the audience through a small video clipping of such a warehouse. We will elaborate how the customer and offshore developers worked together using agile in a highly integrated team collaboration model to achieve success within a very short time frame.

    The session will cover the following key areas:

    How such projects can be initiated

    - What type of team model and contract type we used

    - How we did the agile transformation with the customer

    - How the roles were assigned between offshore and onshore team members

    - To improve remote collaboration the tools and techniques we used

    - Techniues learned to get teams up to speed with the new domain

    - As we go along, the process changes we identified and implemented to make things work better.

    - Agile engineering practices and team dynamics that helps in such situations

  • Liked Prasanna Vaste
    keyboard_arrow_down

    Prasanna Vaste - Should we stop using Story Points and Velocity?

    Prasanna Vaste
    Prasanna Vaste
    Business Analyst
    Thoughtworks
    schedule 4 years ago
    Sold Out!
    20 Mins
    Experience Report
    Beginner

    On Agile projects we estimate user stories in order to allow team to

    1. 1. Track velocity
    2. 2. Decide scope for the Iteration
    3. 3. Help Prioritize stories
    4. 4. Help Release planning

    But most of the time we faced issues with estimation. It takes lot of time in estimating user stories, managers tend to relate estimate to number of days it will take to complete the story, in some teams estimate is equal to deadline. Most of the teams which use story points to estimate the work face these issues. This results in lack of confidence on development team when stories are taking more time to complete.

    Here I am going to talk about better alternative for both the suppliers of software products (financially and ethically) and their customers (internal and external). This alternative is being used in real companies delivering to real customers with great effect where team uses count of stories completed in an Iteration as measure of progress. Will talk about how this alternative can be used to track velocity, prioritize stories, planning Iteration and for release planning.

    I will share some exmples from my past projects where team did not use story points/velocty but used count of stories completed in Iteration to measure progress and also as best indicator of future performance.

  • Liked Mushtaq Ahmed
    keyboard_arrow_down

    Mushtaq Ahmed - Using a modern web framework for big enterprise agile project

    Mushtaq Ahmed
    Mushtaq Ahmed
    Mr Scala
    ThoughtWorks
    schedule 4 years ago
    Sold Out!
    20 Mins
    Demonstration
    Advanced

    At ThoughtWorks, a 50-people team is building a marketing website backend for one of the largest consumer electronics brands in the world. We are Play-Scala as our web framework which allows us to design the application in a very different but powerful ways. This experience based talk will talk about these differences, emphasizing on two of them: "Dealing with concurrency without threads" and "Dependency resolution with constructor injection".

    Dealing with concurrency without threads
    - The backend is end to end non-blocking with highly concurrent architecture
    - Each page consists of 20+ reusable snippets, so each page request translates into 20+ outbound web service calls to get data for the snippet data in parallel
    - Posting data involves download/upload of large images from/to remote services, also done in parallel
    - We will show you how Scala Futures, Play and ReactiveMongo functional programming paradigm allows us to do all this without blocking any thread or managing thread-pools by hand

    Dependency resolution with constructor injection
    - Dependency injection is considered essential for designing applications that are easy to test. Usaully, dependencies are specified as constructors parameters
    - Scala traits allow us to get rid of constructors by wrapping classes and their factories inside components that in turn can depend on other components, this enables a compile time mechanism for dependency resolution which is very flexible
    - We will show examples of this pattern, its effects testing without external DI frameworks

    We will briefly talk on how functional programming style in general helps with testing and software delivery on agile projects. Finally, we will also cover the pain-points these approaches bring out, and argue if it is worth to pay that cost.

     

     

  • Liked Gerry Kirk
    keyboard_arrow_down

    Gerry Kirk - Create an Agile virus in your organization, empower your team, change your life

    90 Mins
    Tutorial
    Beginner

    Need buy in from a key manager or executive to adopt Agile? Desiring better team collaboration? Hungry for a saner life at home?
    Try Personal Kanbanwinner of the Shingo prize for Operational Excellence. It's the fastest, simplest way to taste test the goodness of the Lean Agile approach to managing knowledge work. Personal Kanban empowers small teams and individuals, at work and at home.Give that overwhelmed executive instant relief. Build your own system, and soon curious onlookers ask and then create their own. Look out, you've just released an Agile virus in your organization!
    You've also discovered a way for you and your team to get more out of your efforts, to improve communication, and find time for the things that matter most.In this session you'll learn how to create a Personal Kanban system through stories, examples and interactive exercises. Walk away understanding the psychology behind visualizing work and limiting work in progress, inspired and motivated to make a difference at work and home. 

  • Liked Anna Obukhova
    keyboard_arrow_down

    Anna Obukhova - The SCRUM and the willpower: how neuroscience can boost your productivity

    Anna Obukhova
    Anna Obukhova
    Agile Coach
    Luxoft
    schedule 4 years ago
    Sold Out!
    45 Mins
    Talk
    Intermediate

    Willpower is the force that is between the brain activity (I want to do this or I need to do this) and the action itself (start coding). If there is not enough willpower, people find it difficult to start any activity (especially that involves
    decision making).


    What is the standard approach when you feel tired and find it difficult to concentrate? Take some coffee (but latest research shows that coffee depletes the brain activity, even when body has more energy), take some sweets (but sugar ends quickly and gives even more exhaustion to the body)? These widely used strategies generally do not work, and in long-term even add harm to the body and brain.


    The willpower is not endless (so-called muscle theory of willpower), it can be saved, it can be trained, there are approaches how to keep the willpower level high. To keep the willpower (and thus, productivity) on the high level, people should know and use different approaches that lay in the field on the social and cognitive science.


    There are a lot of evidences that SCRUM improves the developer’s productivity in terms of speed of development, code quality, and accuracy of design. Unfortunately mainly all recommendations from SCRUM coaches look like “believe me, if you do this, you will have better velocity”. Yes, it works. But why does it work?


    Sometimes SCRUM does not give such great results even when main elements are in place. The question “Why” and “What makes the difference” is here again.


    I will describe the model of relationship between the willpower related brain metabolism on very low level (specific amino acid cycle) and the SCRUM practices. I can prove that SCRUM addresses the productivity of the people’s brain using 3 different flows simultaneously. There are several tips that make these productivity flows working or not. You can make Agile productive, you can have non-productive Agile. I will show you where the difference is.


    Overall there are 10 productivity tips that can be put into 3 flows.


    As the outcome of this session, Agile coaches, and all people who can change the process (in fact that is any team member) will review their SCRUM: does the way they have it improve the productivity or they are losing all the power? The changes are cheap, the outcome can be huge.

  • Liked Tathagat Varma
    keyboard_arrow_down

    Tathagat Varma - Agility @ The Scale of Busine$$

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

    [24]7 Customer, Inc started out in customer service space from Bangalore in 2000. Today, it is a sucessful mid-size company in voice-based customer support that also creates IP and products in big data and predictive analytics for some of the biggest names in business, and is a a high-growth company headquartered out of US. The growth in product R&D happened both organically as well as from acquisitions across multiple geos. While the initial / startup stage processes had been extremely successful in building the company's strong foundation, it was felt that the next stage of growth might not be a linear extrapolation of the past successes. Recognizing this futuristic need, it initially embraced agile software development methods in Q1 of 2013 to improve responsiveness, predictability and time to market in the product development organization. In Q2 of 2013, it embarked upon an ambitious company-wide program. The charter was to establish an end-to-end execution framework to make the entire operations efficient and effective - right from marketing and pre-sales to delivery, deployment, operations and ongoing optimization. 

    In this session,

    • We will analyze challanges involved in scaling-up agile adoption outside the software team across the entire organization.
    • Specifically, we will also discuss how we addressed some of those unique challanges that are associated with growth and scale, and
    • What does it take to achieve true end-to-end agility. 
  • Liked Karthik Sirasanagandla
    keyboard_arrow_down

    Karthik Sirasanagandla - When Agile becomes Fr-agile..learn your lessons the fun way!

    45 Mins
    Talk
    Intermediate
    So you have heard of "Code Smells". Did you hear of "Agile Smells"? Yes or No; then this session is for you (us).
     
    In this session, Karthik intends to talk about the very many things that go wrong in companies that attempt to be or become Agile.
    But fault-finding is the easiest thing. Can Karthik provide concrete solutions? Yepp, he intends to share the solutions as well for most if not all the problems.
    And in same breadth seeks to know what others has to offer from their experience.
     
    Piquing your interest? Are you wanting to get a taste of some of the Agile smells? Below are some of them:
    * Belated Stand-ups
    * Non-participative stand-ups
    * War-zone Retrospectives 
    * Unfruitful Sprint planning meeting
    * Zero-Test development
    * Inverted Test Pyramid development
    * Gate-keeper QAs
    * Hierarchical Roles
    * Velocity Driven Development
     
  • Liked Amoli Upadhye
    keyboard_arrow_down

    Amoli Upadhye - Scale up Agile - Cheers to complex, systems integration mega - projects!

    20 Mins
    Experience Report
    Intermediate

    Large systems integration projects form a large majority in typical corporate IT departments. With growing agile methodology adoption and its proven success rate in small / mid – sized projects there is a strong interest in case studies where teams have scaled Agile for XL size project execution

    Such large integration projects warrant natural complexities and teams rely on scaling existing agile practices to be able to up their game. As these projects are high risk / high value candidates, it is critical that project teams deliver them smoothly while rallying various stakeholders involved.

    This session would describe how agile principles can be elastic enough to help teams achieve just that!

    It describes exactly which agile principles have helped me (more than others) to influence my Product Owner-ship on my big, fat COTS application product tied to many upstream / downstream systems and even more stakeholders

  • Liked Johannes Brodwall
    keyboard_arrow_down

    Johannes Brodwall - Bare-Knuckle Web Development

    Johannes Brodwall
    Johannes Brodwall
    Chief Scientist
    Exilesoft
    schedule 4 years ago
    Sold Out!
    45 Mins
    Talk
    Intermediate

    Can you go faster with less weight?

    We have all learned the benefit of reusing application servers like JBoss, ORMs like NHibernate or dependency injection frameworks like Spring that "solve all the plumbing code for you", but how real are these benefits really? Most developers struggle using techniques like test-driven development and refactoring effectively in their day to day project. Many developers spend a majority of their day finding out which magic incantations will make your framework solve your requirement.

    Yes, frameworks probably will reduce the size of your code base. But will their reduce the time it takes to develop that code base? And perhaps even more pressingly: How certain are your estimates when you know that a the majority of your work is to find out exactly which few lines of code you need to change by debugging, reading documentation and searching for answers on stack overflow?

    When I was first learning math, my dad told me that I didn't to use a calculator before I could do the math without it. In the same tradition, this talk builds on the premise that you shouldn't use a framework that you can't do without: I will create, live, a realistic web application without generators, without frameworks and without bullshit. Instead, I will use test-driven development to ensure steady progress to a solution with no magic.