Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

20070921 Uni Softwareengineering

1,517 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
  • Be the first to comment

  • Be the first to like this

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>

×