Day 2 of the YOW! Australia software development conference in Brisbane, the following are my notes from the sessions that I attended.
Keynote: Exploring NoSQL
Erik Meijer delivered this keynote, which essentially proved that relational databases and NoSQL are mathematical opposites. The slides are available here.
- “NoSQL took away the relational model and gave nothing back” – Benjamin Black
- SQL is complicated and not very efficient
- principle of compositionality
- SQL and NoSql are opposites mathematically
Leveraging Internet Technologies to Build a New Breed of Software Development Tools
Martin Nally from IBM delivered this talk on development tools and RDF, his slides are available here.
- 78% of people cite delivery pressure as to why they don’t use ALM
- vendors believe their tool is the centre of the universe – if that is the case you need to know the universe
- AD/Cycle tried a central repository model in 1990 – did not work, but most vendors still trying to this
- currently we try to use the integrated model
- third option is to use the world wide web and linked data (Tim Berners Lee) – give everything an URI, use HTTP URI so people can look them up, provide useful information on lookup (RDF), include links to other URIs – this is just REST!
- “tools are just a prison for data”
- we still build tools like we built applications in the 50’s – need all the data
- RDF – universal data representation for the web, SPARQL is the RDF query language – XML looks awful for RDF, Ntuples is much easier
- open-services.net – community around linked data for tools
- focus on the integration scenarios because you will never get two customers to agree on the specifics of a test tool
- friends don’t let friends represent data in XML
- URLs should last forever – use virtual names, don’t tie to machines and don’t put meaning into URLs because it will change
iPhone & Android: From Concept to Delivery
Nathan de Vries spoke about iPhone iOS development and Daniel Bradby spoke about Android development, the slides are available here.
- Australia has had abnormal adoption of the iPhone
- design is a very important part of the platform
- Apple publishes Human Interface Guidelines
- aesthetic integrity – don’t want design to get in the way, match aesthetics to the type of application
- direct manipulation – feel like you are interacting with the objects on the screen
- metaphor – mapping design back to real life
- consistent – apple provides a base framework – navigation, view, tab bar controller
- start raw with ideas on big bits of paper, constraints of device means you need to be very iterative
- when designing screens remember the different screen resolutions between the iPhone 3GS (480 x 320), iPhone 4 (960 x 640) and iPad (1024 x 768)
- use vectors when designing images so that they scale down nicely
- use the simulator but do not under estimate the value of testing on the device
- testing tools not built into the culture but are gaining prominence (GHUnit and Cedar)
- suggest that you always develop with the latest SDK for the latest devices and patches
- use iOS Beta Builder to test with up to 100 users on real devices
- use analytics to get real usage of your applications, 80% of apps are use once and 95% are abandoned after one month
- track reviews but don’t take them to heart
- Android is developed by the Open Handset Alliance, which includes a large number of developers, telcos and manufacturers, of which Google is just one
- Dalvik is the Java virtual machine that runs on Android handsets
- The Android IDE is built on top of Eclipse
The Emergence of UX in an Agile World
Victor Rodrigues and Xerxes Battiwalla from Cochlear spoke about combining agile and UX, their slides are available here.
- agile came from internal IT projects, but UX came from consumer commercial products
- experience needs to be designed
- many user experiences are broken
- a great resource is 20 Things I Learned About Browsers and the Web
- start with a backlog
- with UX you need to look at the entire system
- decided that UX and development went separate ways and proceeded in two different stream
- incrementally develop in a series of internal drops
- 3 stages of UX evolution – idea storming (consider all options and dismiss them), prototyping (let designers choose their tools) and user testing (ease of use, makes sense, sketchy UI)
- develop the UI after interaction has been defined, so start by developing the plumbing
- designers and developers should use their own tools but talk a common language (markup)
- MVVM – model – view – view model
Management 2.0: Leadership Models for an Information Age
Richard Durnal from realestate.com.au delivered this session, the slides are available here.
- ChangingMinds.org – leaders vs managers
- How I Learned to Let My Workers Lead – Ralph Stayer from Johnsonville Sausage in the Harvard Business Review
- PARC(T) model – from The Modern Firm by John Roberts – People, Architecture, Routines, Culture and Technology
- code wars
- point kaizen (optimize points in the process)
- flow kaizen (optimize the entire flow)
- theory of constraints – keep working on the one problem that is causing you the most pain
- systems management.theory helps bridge the gap from agile
- kaizen vs kaikaku – kaizen only gets you so far because you see a slide, sometimes you need to introduce massive change
- you can inspire people but they need to bring their own motivation
- transforming REA – great people, cross functional teams, visual controls, agile and lean concepts, engineering practices, DevOps and hearts and minds
- build a compelling vision (where do we want to go and follow)
- decentralize responsibility and let go of control (people aren’t grasping in the way we expected, developers don’t grasp the business, take time to go out on sales calls, barriers they think are there are not really there)
- work on the culture and the system
- build a great environment (productivity gain has been huge)
- look for trouble makers and throw them into teams with no trouble (wisdom of the crowd)
- take risks, learn and move on
Row Together, Row in the Right Direction, Row Faster: Improving alignment and throughput in software development
Jason Yip delivered this talk, the slides are available here.
- the best programmers are 10 times better than average which is 10 times better than worse
- set the best performers as the standard (not the second worst performer) , teams only as strong as weakest link
- need explicit time for performance and practice
- lower threshold for incidents, raise threshold for incident response (fix the problem)
Forty Years of Fun with Computers
Dan Ingalls took us on a 40 year journey of his life in computing including Smalltalk 76 and 80, SqueakVM and Lively Kernel.