20070921 Uni Softwareengineering

1,453 views
1,365 views

Published on

This is a talk I've given a few times at my alma mater, the University of Northern Iowa (UNI).

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,453
On SlideShare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
21
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • 20070921 Uni Softwareengineering

    1. 1. <ul><ul><li>For the University of Northern Iowa </li></ul></ul><ul><ul><li>Presented by Tony Bibbs </li></ul></ul><ul><ul><li>April 18, 2008 </li></ul></ul>Software Development: Building Better Idiots
    2. 2. About me <ul><li>BS in Computer Science from UNI in 1997 </li></ul><ul><li>Ex-Wrastler. No, seriously. </li></ul><ul><li>Software Engineer at Rockwell International </li></ul><ul><li>11 years doing Software Consulting </li></ul><ul><li>Worked at 2 start-ups. One died. </li></ul><ul><li>Official Nerd-Herder </li></ul><ul><li>Managed popular CMS for over four years </li></ul><ul><li>Give a variety of tech-talks like this one. </li></ul><ul><li>Huge open source fan </li></ul><ul><li>Self-declared internet junkie. </li></ul>
    3. 3. “ Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to build bigger and better idiots. So far, the universe is winning. Fantasy Author Rick Cook:
    4. 4. Evolution of the Software at ITE <ul><li>In 2002 there was no software development process. </li></ul><ul><li>Project Management wasn't a formal competency. </li></ul><ul><li>Didn't know how to effective do business analysis </li></ul><ul><li>Testing? What's that? </li></ul><ul><li>Work environment was hostile. </li></ul><ul><li>Project failure was the norm. </li></ul><ul><li>Too much Not-Invented-Here (NIH) Syndrome </li></ul>
    5. 5. Software Development Goals <ul><li>Suck Less </li></ul><ul><li>Commoditize Software Delivery </li></ul><ul><li>Develop talent into Alpha Geeks </li></ul><ul><li>Build Better Idiots </li></ul>
    6. 6. Goal #1: Suck Less <ul><li>Get some first round draft picks (someday you?)‏ </li></ul><ul><li>Find any software development methodology </li></ul><ul><li>Support the SDLC with sound project management. </li></ul><ul><li>Trash fringe technologies (ColdFusion)‏ </li></ul><ul><li>Develop real competencies (PHP, Java, .NET)‏ </li></ul><ul><li>Actually have fun for a change. </li></ul>
    7. 7. Joel “Joel on Software” Spolsky: <ul><li>“ Beware of Methodologies. They are a great way to bring everyone up to a dismal, but passable, level of performance, but at the same time, they are aggravating to more talented people who chafe at the restrictions that are placed on them.” </li></ul>
    8. 8. The AEGS SDLC <ul><li>SDLC Goals: </li></ul><ul><li>Follow Industry Standards </li></ul><ul><li>Remain consistent with DAS-ITE Customer Service model </li></ul><ul><li>Balance speed of delivery with quality </li></ul><ul><li>Remain flexible to business needs </li></ul><ul><li>Make decisions as a team (consensus)‏ </li></ul>
    9. 9. SDLC at a Glance
    10. 10. Real Project with Full Analysis <ul><li>Use Cases </li></ul><ul><li>Process flows </li></ul><ul><li>ERD </li></ul>
    11. 11. Goal #2: Commoditize Software Delivery <ul><li>Software should be a simple commodity like cars. </li></ul><ul><li>Building software works like building cars </li></ul><ul><li>Software Frameworks are the automotive assembly line. </li></ul><ul><li>A good framework allows good developers to focus on innovation and it makes bad developers tolerable. </li></ul>
    12. 12. Goals for all AEGS frameworks <ul><li>Minimize the significance of the programming language. PHP, C, Java, C# are all nooses waiting for their next victim. </li></ul><ul><li>Leverage in-house talent by making frameworks consistent across all core competencies </li></ul><ul><li>Automate low-level tasks (creating files, doing builds, running tests)‏. Continuous Integration! </li></ul><ul><li>Focus on innovating the business solution </li></ul>
    13. 13. Key Framework Components <ul><li>Model-View-Controller (MVC) – Cleanly separates visual components (views) from business logic (models). Encourages reuse. </li></ul><ul><li>Object Relational Mapper (ORM) – Reduce the amount of SQL written by over 75%. </li></ul><ul><li>Unit Testing with tools like nUnit, PHPUnit and nUnit. </li></ul><ul><li>Moving towards continuous integration. </li></ul>
    14. 14. Goal #3: Develop Alpha Geeks <ul><li>In software we can do more with less. 3 alpha geeks can produce more quality code than 2x subpar counterparts. </li></ul><ul><li>The lazier the better. </li></ul><ul><li>Collaboration is key. Twitter, IRC, IM, wikis, email, blogs you name it we use it. </li></ul><ul><li>Encourage individuals to master something. GIS, mapping, AJAX, EJB, etc. </li></ul><ul><li>From a team perspective, cover all the angles: PM, BA, Architect, Frontend Engineer, Backend Engineer, Testers. </li></ul>
    15. 15. PM Process at a Glance
    16. 16. Goal #4: Build Better Idiots <ul><li>This is where we sit today organizationally. </li></ul><ul><li>Sound software is being delivered but initial quality is suspect (thanks to better idiots). </li></ul><ul><li>Working to establish a formal software test competency. </li></ul><ul><ul><li>Unit, System and Integration testing. </li></ul></ul>
    17. 17. SDLC Success Stories <ul><li>Iowa Sex Offender Register </li></ul><ul><li>Iowa School Alerts </li></ul><ul><li>FARMS </li></ul><ul><li>Enterprise A&A (ITE), </li></ul><ul><li>ePayment (ITE)‏ </li></ul><ul><li>Health Facilities (DIA)‏ </li></ul>
    18. 18. Programming Resources <ul><li>Design Patterns </li></ul><ul><li>Model-View-Controller (MVC) Pattern </li></ul><ul><li>Object Relational Mapping (ORM)‏ </li></ul><ul><li>PHP </li></ul><ul><li>Apache Web Server </li></ul><ul><li>MySQL RDBMS </li></ul><ul><li>Linux Operating System </li></ul><ul><li>Enterprise Architect (UML Tool)‏ </li></ul>
    19. 19. Becoming an Alpha Geek <ul><li>RTFM </li></ul><ul><li>Learn Linux! </li></ul><ul><li>Contribute to an open source project. </li></ul><ul><li>Master Google Searching: </li></ul><ul><ul><li>[-inurl:(htm|html|php) intitle:”index of” +”last modified” +”parent directory” +description +size +(”paris_hilton.wmv”|”paris_hilton.avi”)] </li></ul></ul><ul><li>Learn to love mailing lists and user groups </li></ul><ul><li>Develop your soft skills. </li></ul><ul><li>Blog. Tell the world what you're geekin' out on. </li></ul><ul><li>Give talks. Tons of respectable geek conferences. </li></ul>
    20. 20. Questions? <ul><li>Possible Ideas: </li></ul><ul><li>What I'd do different if I could do college over again? </li></ul><ul><li>Start-ups </li></ul><ul><li>Engineering vs. Consulting </li></ul><ul><li>Government vs Private Sector </li></ul><ul><li>Examples of Successful Nerdy UNI Grads </li></ul><ul><ul><li>Chris Pirillo </li></ul></ul><ul><ul><li>Tim Perdue </li></ul></ul><ul><ul><li>Dave Weis </li></ul></ul>
    21. 21. Contacting Me <ul><li>[email_address] </li></ul><ul><li>http://www.tonybibbs.com </li></ul><ul><li>Twitter: http://twitter.com/tonybibbs </li></ul><ul><li>Facebook </li></ul><ul><li>LinkedIn </li></ul><ul><li>515.554.8046 </li></ul>

    ×