John McKerrell provides tips for managing phone development projects. He recommends brainstorming ideas using post-it notes or mind maps. Designing the app by prioritizing ideas and creating a high-level overview. Using source control like Git to manage code, keeping the source tree tidy with commenting. Testing with test-driven development, documentation-driven testing, and test plans. Managing bugs by adding them to an issue tracker.
3. My Education
Received a 2.1 in Computer Science from
University of Leeds
Was taught Pascal in 1st year, C++ 2nd & 3rd
Final year project was in “Classic” ASP with SQL
Server
4. My Experience
Worked in Manchester on the official website for
the Barclaycard Premiership
Also other bespoke Content Management
Systems built on LAMP (Linux, Apache, MySQL,
PHP)
5. My Experience
Went on to work for Multimap.com building their
JavaScript mapping API
Worked for Microsoft for six months after they
bought Multimap
6. Freelance
Have been developing for iOS for over 2 years
Have had 50 apps available on the iOS app store
Recently launched 18 apps on Android Market Place
8. Brainstorm Features
Post-it notes are a great
way to brainstorm
Write down lots of ideas
Collect related ideas
into groups
Also good for
“User Stories”
“slim and high-level
requirements”
HTTP://WWW.FLICKR.COM/PHOTOS/YANDLE/2055035926/
9. Brainstorm Features
Mind maps are a great way to collect and organise
ideas
Can use online tools such as mindmeister.com to
allow shared use within a group
Also offline tools such as Freemind are available
12. Ideas can come at any time
Take time out away
from the computer
Give yourself as much
time as possible to
think things through
HTTP://WWW.FLICKR.COM/PHOTOS/CPOYATOS/4374856699/
16. Design
Build up a high level view of the system
Identify ways to split work into modules
Allows work to be split between people
Helps with re-use
Look for existing code that can be used, Open
Source libraries etc.
18. Lists!
Task list gives you something simple to follow as
you work through the project
Individual tasks become much less about the big
picture and more focussed on the task at hand
19. The Trac Project
Project management and issue tracking system.
Fine-grained control of issue management
Integrated wiki
Can hook into source control to link checked-in
code to resolved bugs
Free Open Source Software
HTTP://TRAC.EDGEWALL.ORG/
20. Github
Free hosting for Open Source Software
Provides basic issue tracking system
Also allows code check-ins to resolve issues
HTTPS://GITHUB.COM/
25. Keep your source tree
tidy
Your code should be modular so arrange it in
subdirectories
Root directory of your project should usually
have as little as possible
Separate modules can even be placed in
separate source control repositories
26. Commenting
Really is important
Especially with particularly fiddly code, such as a
complex algorithm
Although... when using identifiers with sensible
names, commenting can be reduced
27. Commenting
Best thing with a difficult function or method is
to write it out in English or “pseudo-code” first to
get the functionality clear in your head
Then go through the function again, filling in the
gaps between comments with working code
29. Test-driven
development
Generally written as unit tests
Write the tests before you write the code
In a similar way to lists, minimises the “thinking”
you have to do
Works best with self contained modules or
specific algorithms
30. Documentation driven
testing
If you document what the system will do well
enough, the functionality can be tested by simply
going through the design and confirming that
features work as expected
31. Test Plans
For entire apps or website, full user testing is
needed to be sure of quality
Creating a detailed and complete test plan
ensures testing is consistent
32. Found a bug?
Add the bug to your issue tracker
If possible add unit tests that find the bug
Add checks to the test plan that look out for the
bug in the future