Software Design in the 21st Century
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.
Outline/Structure of the Keynote
keynote talk
Learning Outcome
hopefully some useful ideas
Target Audience
All
Video
schedule Submitted 7 years ago
People who liked this proposal, also liked:
-
keyboard_arrow_down
Fred George - Go Faster: Remove the Inhibitors to Innovation
45 Mins
Talk
Advanced
A common theme runs through conferences, whether focused on MicroServices, DevOps, Lean Startup, or a myriad of other popular topics: Enabling an organization to Go Faster . I explore the need to go faster (which is hardly new), and three areas inhibitors arise: Technology choices, staid business Processes, and traditional Organization structures and roles. For each, I cite personal experiences in overcoming each.
-
keyboard_arrow_down
Justin Searls - How to Stop Hating your Tests
45 Mins
Talk
Intermediate
Your app is a unique snowflake. Your tests are too… but they shouldn't be!
You know the person on every project team who cares just a little bit more about testing than everyone else? This talk is a distillation of the lessons learned I've learned from being that guy on dozens of projects.
This is a rapid-fire session that covers 15 systemic problems that plague most teams' test suites, presented form an angle you probably haven't considered before. Best of all, it'll equip you with preventative measures to avoid or mitigate each of them.
-
keyboard_arrow_down
Joshua Kerievsky - The Art of Refactoring
45 Mins
Talk
Intermediate
Code that is difficult to understand, hard to modify and challenging to extend is hazardous to developers, users and organizations. Refactoring, or improving the design of existing code, is one of our greatest defenses against such code. In this talk, I’ll discuss the value of refactoring, how we practice it safely, when and why we refactor, the power of refactoring tools and when we avoid refactoring. I’ll be using several real-world examples of refactoring and sharing what I’ve learned about this important practice of the last 20 years.
-
keyboard_arrow_down
Leena S N - Deliver with Impact
45 Mins
Experience Report
Intermediate
Many software delivery teams struggle to have a common understanding of "why" a product or feature is being built. The documents such as Project Charter, vision document etc. tries to solve this problem, but it’s common to see such documents exist in the repository, hardly known or read by anyone in the team. And this document rarely gets updated too. Ask your team members what is the goal of the project? You may be surprised to know how many actually know about it.
This is where Impact Mapping comes into the picture. It is a "Strategic planning technique", defined by Gojko Azdic, explained in the book Impact Mapping. It is a very simple technique based on the idea of "asking the right questions" which are:
- Why are we building what we are building?
- Who are the actors who gets impacted?
- How do we expect to change the actors’ behavior?
- What should we do to create the impacts?
Fundamental of Impact Mapping is that Impact means a change in behavior of an actor which usually results in a positive impact either by Reduction in the Cost or Improvement in ROI for the business.
The above questions need to be answered by the entire team [the IT team, the business people and any other stakeholders, if any], and avoids the common anti-patterns:
- Ad-hoc planning
- Wrong Assumptions
- Pet features
-
keyboard_arrow_down
Leena S N - Merge Hells?? Feature Toggle to the Rescue
20 Mins
Talk
Beginner
Feature branching has been popular for long, but everyone knows about the “merge hell”, a common issue because of long lived branches or infrequent integration. How do you continuously merge, test and release software with great confidence without spending too much time on merging and fixing conflict issues. That is where Mainline development, one of the key practices of Continuous Delivery, comes into picture and Feature Toggle works in conjunction with the same. Feature Toggle [also referred as Feature Flip, Feature Switch, Feature flag] is a technique which allows you to turn on or off a feature through configuration. Feature toggles gives you the flexibility to toggle features in specific environments i.e. turn on a feature in pre-production environments and turn it off the same in production. This also helps to rollback features, as rolling back is as simple as turning off the feature and deploying.
-
keyboard_arrow_down
Manish Chiniwalar / Kuldip Chakraborty - Make bold decisions and validate them in 5 days
Manish ChiniwalarProduct ManagerMultunus SoftwareKuldip ChakrabortySr. Product ManagerMultunus Softwareschedule 6 years ago
90 Mins
Talk
Intermediate
You have a great idea and you want to get it to existence. How do you proceed?
You know that the key to successful product startup is:
1. Building the right product
2. Moving fastHere’s what usually happens:
- You’ll spend a few weeks getting a better understanding of the Idea.
- Decide a list of features that needs to go into the product.
- Visualise the idea by drawing a few sketches and spend few weeks trying get feedback from your expert friends. (Let’s meet at Starbucks… Dinner’s on me!)
- If you get a good signal, you then are challenged with finding someone to design and build it for you.
- After a month of searching, you find a friend/agency/freelancer/intern/new-hire.
- You have a team and an office. You spend the next 3-4 months building the MVP. The product is coming around nicely and you are making sure all details are taken care of… And of course, event tracking! Measure everything.
- You then release the product into the wild! (Party!)
It’s now been up to 6 months to a year since you first come up with the idea. Your analytics just doesn’t have enough traffic yet to tell you what’s working and what’s not! You struggle to have a good picture.
Consider this:
If we met 6 moths ago, and if I told you, I have a time capsule wherein you can travel through time, to the end of the product development and know how your users will react to your product. Would you take it?
Of course, you would!The time capsule I’m talking about is called the Google Venture’s Design Sprint. It’s a 5-day process to validate critical business assumptions. It uses design thinking and lean startup methods to de-risk your product by better solutions and testing it with 5 real users. At the end of the design sprint, you’ll know what connected with your users and what just didn’t make sense to them.
This process will save you months and months of time spent in meetings, research, design, coding, marketing.
5 Days. Monday to Friday. That's it! -
keyboard_arrow_down
Manish Chiniwalar - Build the right products through better user research
20 Mins
Talk
Intermediate
The most common objection people have against User Research is, "People don't know what they want" and they go ahead and quote:
“If I had asked people what they wanted, they would have said faster horses.” ― Henry Ford
He's right! But, that's the wrong question to ask your users!
What if you ask instead, "What do you want to get done with your horses?" or just followed it up with a simple "Why?".
Then people might have told you, "I want to reach the other town faster", "I want to be able to carry more people or more goods", "I want to feel the thrill of speed",...Then it's your job to figure out "How Might We move more people faster with minimum maintenance and cost?"
Let's take another example,
Bad question:
You: "Will you brush your teeth at night from tomorrow?"
User: "Of course, twice a day!"People are incredibly optimistic about doing things in the future. A good question would be:
You: "What does your night routine look like?"
User: "I have dinner, clean the kitchen, make the bed, Turn on Netflix, switch night lamp on and fall asleep watching House of Cards"In this talk, I'll share with you, my learning and experience doing user research.